冒泡排序 實現原理 ① 首先將所有待排序的數字放入工作列表中。 ② 從列表的第一個數字到倒數第二個數字,逐個檢查:若某一位上的數字大於他的下一位,則將它與它的下一位交換。 ③ 重覆步驟②,直至再也不能交換。 代碼實現 1 <?php 2 function bubbingSort(array $arr ...
-
冒泡排序
-
實現原理
① 首先將所有待排序的數字放入工作列表中。
② 從列表的第一個數字到倒數第二個數字,逐個檢查:若某一位上的數字大於他的下一位,則將它與它的下一位交換。
③ 重覆步驟②,直至再也不能交換。
-
代碼實現
1 <?php 2 function bubbingSort(array $array) 3 { 4 for($i=0, $len=count($array)-1; $i<$len; ++$i) 5 { 6 for($j=$len; $j>$i; --$j) 7 { 8 if($array[$j] < $array[$j-1]) 9 { 10 $temp = $array[$j]; 11 $array[$j] = $array[$j-1]; 12 $array[$j-1] = $temp; 13 } 14 } 15 } 16 return $array; 17 } 18 19 print '<pre>'; 20 print_r(bubbingSort(array(1,4,22,5,7,6,9))); 21 print '</pre>';
-
-
快速排序
-
實現原理
採用分治的思想:先保證列表的前半部分都小於後半部分,然後分別對前半部分和後半部分排序,這樣整個列表就有序了。
-
代碼實現
1 function quickSort(array $array) 2 { 3 $len = count($array); 4 if($len <= 1) 5 { 6 return $array; 7 } 8 $key = $array[0]; 9 $left = array(); 10 $right = array(); 11 for($i=1; $i<$len; ++$i) 12 { 13 if($array[$i] < $key) 14 { 15 $left[] = $array[$i]; 16 } 17 else 18 { 19 $right[] = $array[$i]; 20 } 21 } 22 $left = quickSort($left); 23 $right = quickSort($right); 24 return array_merge($left, array($key), $right); 25 } 26 27 print '<pre>'; 28 print_r(quickSort(array(1,4,22,5,7,6,9))); 29 print '</pre>';
-