首頁(yè)技術(shù)文章正文

PHP培訓(xùn)之插入排序

更新時(shí)間:2017-08-31 來(lái)源:黑馬程序員PHP培訓(xùn)學(xué)院 瀏覽量:

許多人都說(shuō)算法是程序的核心,算法的好壞決定了程序的質(zhì)量。作為一個(gè)初學(xué)者,雖然很少接觸到算法方面的東西。但是對(duì)于基本的排序算法還是應(yīng)該掌握的,它是程序開(kāi)發(fā)的必備工具。



插入排序


思路分析:在要排序的一組數(shù)中,假設(shè)前面的數(shù)已經(jīng)是排好順序的,現(xiàn)在要把第n個(gè)數(shù)插到前面的有序數(shù)中,使得這n個(gè)數(shù)也是排好順序的。如此反復(fù)循環(huán),直到全部排好順序。

代碼實(shí)現(xiàn):

function insertSort($arr) {
$len=count($arr);
for($i=1, $i<$len; $i++) {
$tmp = $arr[$i];
//內(nèi)層循環(huán)控制,比較并插入
for($j=$i1;$j>=0;$j) {
if($tmp < $arr[$j]) {
//發(fā)現(xiàn)插入的元素要小,交換位置,將后邊的元素與前面的元素互換
$arr[$j+1] = $arr[$j];
$arr[$j] = $tmp;
} else {
//如果碰到不需要移動(dòng)的元素,由于是已經(jīng)排序好是數(shù)組,則前面的就不需要再次比較了。
break;
}
}
}
return $arr;
}



本文版權(quán)歸黑馬程序員PHP培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處,謝謝!
作者:黑馬程序員PHP培訓(xùn)學(xué)院
首發(fā):http://php.itheima.com/
分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!