更新時間:2017-08-31 來源:黑馬程序員PHP培訓學院 瀏覽量:
許多人都說算法是程序的核心,算法的好壞決定了程序的質(zhì)量。作為一個初學者,雖然很少接觸到算法方面的東西。但是對于基本的排序算法還是應該掌握的,它是程序開發(fā)的必備工具。
選擇排序
思路分析:在要排序的一組數(shù)中,選出最小的一個數(shù)與第一個位置的數(shù)交換。然后在剩下的數(shù)當中再找最小的與第二個位置的數(shù)交換,如此循環(huán)到倒數(shù)第二個數(shù)和最后一個數(shù)比較為止。
代碼實現(xiàn):
function selectSort($arr) {
//雙重循環(huán)完成,外層控制輪數(shù),內(nèi)層控制比較次數(shù)
$len=count($arr);
for($i=0; $i<$len1; $i++) {
//先假設最小的值的位置
$p = $i;
for($j=$i+1; $j<$len; $j++) {
//$arr[$p] 是當前已知的最小值
if($arr[$p] > $arr[$j]) {
//比較,發(fā)現(xiàn)更小的,記錄下最小值的位置;并且在下次比較時采用已知的最小值進行比較。
$p = $j;
}
}
//已經(jīng)確定了當前的最小值的位置,保存到$p中。如果發(fā)現(xiàn)最小值的位置與當前假設的位置$i不同,則位置互換即可。
if($p != $i) {
$tmp = $arr[$p];
$arr[$p] = $arr[$i];
$arr[$i] = $tmp;
}
}
//返回最終結(jié)果
return $arr;
}
本文版權(quán)歸黑馬程序員PHP培訓學院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處,謝謝!