排序之冒泡排序(优化)-PHP

Posted 巅峰小学生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排序之冒泡排序(优化)-PHP相关的知识,希望对你有一定的参考价值。

 1 <?php
 2     //设置请求头
 3     header("content-type:text/html;charset=utf-8");
 4     
 5     //对冒泡排序进行优化:如果数组在传进来或者遍历一次两次后
 6     //就已经排好了 就不再进行排序操作
 7 
 8     //例子:
 9     $arr = array(1,2,3,6,4,12,1,85,1,3); //待排序数组
10 //    $arr = range(1, 10000);
11     
12     function my_bubble_sort(&$arr){
13         var_dump($arr);
14         
15         $arr_count = count($arr);
16 
17         //比较次数
18         for($i=0; $i<$arr_count - 1; $i++){
19             
20             for($j=0; $j<$arr_count - $i - 1; $j++){
21                 
22                 //大向右移动,小向左移动(从大到小只需要该一下符号)
23                 if($arr[$j] > $arr[$j+1]){
24                     //交换操作
25                     $temp = $arr[$j];
26                     $arr[$j] = $arr[$j + 1];
27                     $arr[$j + 1] = $temp;
28                     $flag = 1;
29                 }
30             }
31 
32             if(!$flag){
33                 //如果$flag=0表示 小for循环没有进行过1次数据交换(没有进行过一次比较就可以说明该数组已经排序好)
34                 //也就说不需要进行排序
35                 break;
36             }else{
37                 $flag = 0;
38             }
39         }    
40 
41         var_dump($arr);
42     }
43 
44      
45 
46     date_default_timezone_set (‘PRC‘);
47     
48 //    echo "start:" . date(‘H:i:s‘) . ‘<br>‘;
49     my_bubble_sort($arr);
50 //    echo "end:" . date(‘H:i:s‘);
51 
52 ?>

 

以上是关于排序之冒泡排序(优化)-PHP的主要内容,如果未能解决你的问题,请参考以下文章

php教程之PHP实现冒泡排序的经典实例

php排序之冒泡排序

图解算法系列之冒泡排序(优化版)

面试必考算法题之冒泡排序 (优化脱坑版)!

java排序之冒泡排序

算法之排序算法-冒泡排序与优化