概述:PHP四大基本排序演算法包括:冒泡排序法,快速排序法,選擇排序法,插入排序法。
1. 冒泡排序
思路分析:在要排序的一組數中,對目前還未排好的序列,從前往後對相鄰的兩個數依次進行比較和調整,讓較大的數字往下沉,較小的往上冒。即,每當兩相鄰的數比較後發現它們的排序與排序要求相反時,就將它們互換。
程式碼實作:
$arr=array(1,43,54,62,21,66,32,78,36,76,39);
function count($arr);
//此層循環控制 需要冒泡的輪數
for($i=1;$i { //此層循環用來控制每輪 冒出一個數 需要比較的次數
for($k=0;$k {
$tmp=$arr[$k+1];
$arr[$k+1]=$arr[$k];
}
}
return $arr ;
}
2. 選擇排序
程式碼實作:
function selectSort($arr) {/雙循環完成,外層控制次數,內層控制輪碼count($arr); for($i=0; $i for($j= $i+1; $j //$arr[$p] 是目前已知的最小值
//比較,發現更小的,記錄下最小值的位置;並且在下次比較時採用已知的最小值進行比較。
$p = $j;
目前的最小值的位置,儲存到$p。如果發現最小值的位置與目前假設的位置$i不同,則位置互換即可。
if($p != $i) {
,$ $i];
$arr[$i] = $tmp;
}
}
//返回最終結果
return $arr;
}
3.必須插入排序
順序分析把第n個數插到前面的有序數中,使得這n個數也是排好順序的。如此反覆循環,直到全部排好順序。
程式碼實作:
function insertSort($arr) {
$len=count($arr);
$tmp = $arr [$i];
//內層循環控制,並插入
for($j=$i-1;$ ]) {
//已發現插入的元素要小,且交換位置,後邊的元素與前面的元素互換
$arr[$j] = $tmp;
} else {
break;
,
}
4.快速排序
程式碼實作:
function quickSort($arr) { //先判斷是否需要繼續進行 { return $arr ; }
//選擇第一個元素作為基準
$base_num = $arr[0];
$left_array = array(); //小於基準的
$right_array = array(); //大於基準 if($base_num > $arr[$i]) {
//在下使用左數
//放入右側
$right_array[] = $arr[$i] ;
}
}
//對左邊和右邊的陣列進行相同的排序處理方式遞歸呼叫這個函數
quick_sort($right_array);
//合併
return array_merge($left_array, array($base_num), $right_array);
}
參考資料:
http://www.evget.com/article/20155/2015/279203/artic http://www.evget.com/product/2605
以上就介紹了PHP四大基本排序演算法實例,包含了面向的內容,希望對PHP教學有興趣的朋友有幫助。