溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP如何實現(xiàn)插入排序的方法

發(fā)布時間:2020-10-16 14:59:10 來源:億速云 閱讀:101 作者:小新 欄目:編程語言

這篇文章主要介紹PHP如何實現(xiàn)插入排序的方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

  插入排序基本思路:將數(shù)組分為兩個區(qū)(已排序區(qū)和未排序區(qū)),假定數(shù)組的第一個元素處于已排序區(qū), 第一個元素之后的所有元素都處于未排序部分。排序時用到雙層循環(huán),外層循環(huán)用于從未排序部分中取出待排序元素,并逐步縮小未排序部分,內(nèi)層循環(huán)用于從已排序部分尋找插入位置(即不斷地從已排序部分尋找比待排序元素大的元素), 然后將較大的已排序區(qū)的元素后移,后移的最終結(jié)果是已排序區(qū)元素的最后一個元素占據(jù)待排序元素原來的位置,而已排序區(qū)中間空出一個位置),最后將待排序元素插入元素后移之后留下的空位。

//插入排序
function insert_sort($arr) {
    //獲取數(shù)組單元個數(shù)
    $count = count($arr);
    //外層循環(huán)用于從未排序區(qū)域中取出待排序元素
    for ($i=1; $i < $count; $i++) {
        //獲取當前需要插入已排序區(qū)域的元素值
        $temp = $arr[$i];
        //內(nèi)層循環(huán)用于從已排序區(qū)域?qū)ふ掖判蛟氐牟迦胛恢?
        for ($j=$i-1; $j >= 0; $j--) {
            //如果$arr[$i]比已排序區(qū)域的$arr[$j]小,就后移$arr[$j]
            if ($temp < $arr[$j]) {        
                $arr[$j+1] = $arr[$j];
                $arr[$j] = $temp;
            } else {
                //如果$arr[$i]不小于$arr[$j],則對已排序區(qū)無需再排序
                break;
            }
        }
    }
    return $arr;
}

$arr = array(6, 19, 26, 62, 88, 99, 18, 16, 1);
var_dump(insert_sort($arr));
  測試結(jié)果:

  PHP如何實現(xiàn)插入排序的方法

以上是PHP如何實現(xiàn)插入排序的方法的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI