1. 程式人生 > >【其他】PHP氣泡排序

【其他】PHP氣泡排序

目的: 對一組資料,比較相鄰資料的大小,將值小資料在前面,值大的資料放在後面。   原理(從後往前): 1、比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。 2、對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。 3、針對所有的元素重複以上的步驟,除了最後一個。 4、持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。   程式碼示例:
function bubbleSort($numbers
){   $cnt = count($numbers); // 獲取陣列大小   for($i =0; $i < $cnt; $i++){ // 外層控制排序輪次(每一個元素都要進行一輪比較排序)   for($j =0; $j < $cnt - $i -1; $j++){ //內層控制每輪比較次數(每增加一輪,參加排序的元素就少一個)   if($numbers[$j]> $numbers[$j +1]){ //如果前一個元素大於後一個元素,就交換兩個元素的位置。     $temp = $numbers[$j];     $numbers[$j]= $numbers[$j +1];     
$numbers[$j +1]= $temp;     }   } } return $numbers; } $num = array(20,40,60,80,30,70,90,10,50,0); var_dump(bubbleSort($num));

 

各種排序演算法的效率: