插入排序

function insert_sort($arr) {
    //區分 哪部分是已經排序好的
    //哪部分是沒有排序的
    //找到其中一個須要排序的元素
    //這個元素 就是從第二個元素開始,到最後一個元素都是這個須要排序的元素
    //利用循環就能夠標誌出來
    //i循環控制 每次須要插入的元素,一旦須要插入的元素控制好了,
    //間接已經將數組分紅了2部分,下標小於當前的(左邊的),是排序好的序列
    for($i=1, $len=count($arr); $i<$len; $i++) {
        //得到當前須要比較的元素值。
        $tmp = $arr[$i];
        //內層循環控制 比較 並 插入
        for($j=$i-1;$j>=0;$j--) {
   //$arr[$i];//須要插入的元素; $arr[$j];//須要比較的元素
            if($tmp < $arr[$j]) {
                //發現插入的元素要小,交換位置
                //將後邊的元素與前面的元素互換
                $arr[$j+1] = $arr[$j];
                //將前面的數設置爲 當前須要交換的數
                $arr[$j] = $tmp;
            } else {
                //若是碰到不須要移動的元素
           //因爲是已經排序好是數組,則前面的就不須要再次比較了。
                break;
            }
        }
    }
    //將這個元素 插入到已經排序好的序列內。
    //返回
    return $arr;
}數組

相關文章
相關標籤/搜索