在现如今,随着PHP程序开发中我们会遇到很多排序,而冒泡排序也是常见之一,想要做好PHP开发,那么我们肯定要很轻松的使用PHP来实现冒泡排序,本篇文章来给大家讲讲PHP冒泡排序!我们一起来看看PHP实现冒泡排序的多种方法吧! 冒泡排序是非常容易理解和实现,以从小到大排序举例: 设数组长度为N。 1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。 2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就"沉"到数组第N-1个位置。 3.N=N-1,如果N不为0就重复前面二步,否则排序完成。 方案一: <?php functionbubble1_sort($array) { $count=count($array); if($count<=1){ return$array; } for($i=0;$i<$count;$i++){ for($j=0;$j<$count;$j++){ if($array[$i]<$array[$j]){ $temp=$array[$i]; $array[$i]=$array[$j]; $array[$j]=$temp; } } } return$array; } 方案二: <?php functionbubble2_sort($array) { $count=count($array); if($count<=1){ return$array; } for($i=0;$i<$count;$i++){ for($j=1;$j<$count-$i;$j++){ if($array[$j-1]>$array[$j]){ $temp=$array[$j-1]; $array[$j-1]=$array[$j]; $array[$j]=$temp; } } } return$array; } 方案三: 设置一个标志,如果这一趟发生了交换,则为true,否则为false。明显如果有一趟没有发生交换,说明排序已经完成。 <?php functionbubble3_sort($array) { $count=count($array); if($count<=1){ return$array; } $flag=true; $j=$count; while($flag){ $flag=false; for($i=1;$i<$j;$i++){ if($array[$i-1]>$array[$i]){ $temp=$array[$i-1]; $array[$i-1]=$array[$i]; $array[$i]=$temp; $flag=true; } } $j--; } return$array; } 方案四: 如果有100个数的数组,仅前面10个无序,后面90个都已排好序且都大于前面10个数字,那么在第一趟遍历后,最后发生交换的位置必定小于10,且这个位置之后的数据必定已经有序了,记录下这位置,第二次只要从数组头部遍历到这个位置就可以了。 <?php functionbubble4_sort($array) { $count=count($array); if($count<=1){ return$array; } $flag=$count; while($flag>0){ $k=$flag; $flag=0; for($j=1;$j<$k;$j++){ if($array[$j-1]>$array[$j]){ $temp=$array[$j-1]; $array[$j-1]=$array[$j]; $array[$j]=$temp; $flag=$j; } } } return$array; } 方案五: <?php functionbubble_sort($array) { $count=count($array); if($count<=1){ return$array; } for($i=$count-1;$i>0;$i--){ $flag=false; for($j=0;$j<$count;$j++){ if($array[$j]>$array[$j+1]){ $temp=$array[$j]; $array[$j]=$array[$j+1]; $array[$j+1]=$temp; $flag=true; } } if(!$flag) break; } return$array; } 以上就是PHP实现冒泡排序多种方法的详细介绍,最后想要了解更多关于PHP开发发展前景趋势,请关注扣丁学堂官网、微信等平台,扣丁学堂PHP培训IT职业在线学习教育平台为您提供权威的PHP视频教程系统,通过千锋扣丁学堂金牌讲师在线录制的一套PHP视频教程课程,让你快速掌握PHP从入门到精通开发实战技能。扣丁学堂PHP技术交流群:374332265。