更新時間:2017-08-31 來源:黑馬程序員PHP培訓(xùn)學(xué)院 瀏覽量:
許多人都說算法是程序的核心,算法的好壞決定了程序的質(zhì)量。作為一個初學(xué)者,雖然很少接觸到算法方面的東西。但是對于基本的排序算法還是應(yīng)該掌握的,它是程序開發(fā)的必備工具。
選擇排序
思路分析:在要排序的一組數(shù)中,選出最小的一個數(shù)與第一個位置的數(shù)交換。然后在剩下的數(shù)當(dāng)中再找最小的與第二個位置的數(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++) {
//先假設(shè)最小的值的位置
$p = $i;
for($j=$i+1; $j<$len; $j++) {
//$arr[$p] 是當(dāng)前已知的最小值
if($arr[$p] > $arr[$j]) {
//比較,發(fā)現(xiàn)更小的,記錄下最小值的位置;并且在下次比較時采用已知的最小值進(jìn)行比較。
$p = $j;
}
}
//已經(jīng)確定了當(dāng)前的最小值的位置,保存到$p中。如果發(fā)現(xiàn)最小值的位置與當(dāng)前假設(shè)的位置$i不同,則位置互換即可。
if($p != $i) {
$tmp = $arr[$p];
$arr[$p] = $arr[$i];
$arr[$i] = $tmp;
}
}
//返回最終結(jié)果
return $arr;
}
本文版權(quán)歸黑馬程序員PHP培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處,謝謝!
【AI設(shè)計】北京143期畢業(yè)僅36天,全員拿下高薪offer!黑馬AI設(shè)計連續(xù)6期100%高薪就業(yè)
2025-09-19【跨境電商運營】深圳跨境電商運營畢業(yè)22個工作日,就業(yè)率91%+,最高薪資達(dá)13500元
2025-09-19【AI運維】鄭州運維1期就業(yè)班,畢業(yè)14個工作日,班級93%同學(xué)已拿到Offer, 一線均薪資 1W+
2025-09-19【AI鴻蒙開發(fā)】上海校區(qū)AI鴻蒙開發(fā)4期5期,距離畢業(yè)21天,就業(yè)率91%,平均薪資14046元
2025-09-19【AI大模型開發(fā)-Python】畢業(yè)33個工作日,就業(yè)率已達(dá)到94.55%,班均薪資20763元
2025-09-19【AI智能應(yīng)用開發(fā)-Java】畢業(yè)當(dāng)天offer率91%,薪資1W+占比54.2%,班級均薪12k+
2025-09-19