首页 > 代码库 > PHP冒泡排序法

PHP冒泡排序法

冒泡排序法是一种很基础的排序方法,也是面试题中经常问到的一道题目.今天做了一下简单的分析,具体代码和思路如下

 1 <?php
 2 
 3     /*思路:
 4      *按照元素顺序循环比较,
 5      * 当前元素为$array[$i],取后面的元素与
 6      * $array[$i]比较,所以应该从第$j($j=$i+1)个元素开始比较;
 7      *
 8      *比较$array[$i]和$array[$j]的大小,将较大的元素放到前面,所以要使用中间变量$tmp
 9      *过渡
10      *
11      *因为$i次循环后,只能保证$array[$i]前面的元素比$array[$i]大,并且按照从大到小的顺序排列,在它后面的
12      *元素不能保证是按照同样的顺序排列,所以要比较(count($array)-1)次,自己不和
13      *自己比较
14      */
15 $array = array(12,45,877,35,545,87,32,2,48,966,252);
16 $num = count($array);
17 for($i=0;$i<$num-1;$i++){
18     for($j=$i+1;$j<$num;$j++){
19         if($array[$i]<$array[$j]){
20             $tmp = $array[$i];
21             $array[$i] = $array[$j];
22             $array[$j] = $tmp;
23         }
24     }
25 }
26 //排序后下后结果:Array ( [0] => 966 [1] => 877 [2] => 545 [3] => 252 [4] => 87 [5] => 48 
27 //[6] => 45 [7] => 35 [8] => 32 [9] => 12 [10] => 2 )
28 print_r($array);

 

  

 

PHP冒泡排序法