中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

一種簡單的直接插入排序精解

發布時間:2020-06-25 15:44:42 來源:網絡 閱讀:526 作者:小沄 欄目:開發技術

    直接插入排序,就像是桌子上一疊正面向下的撲克從小到大地依次拿到自己的手上。

1,顯然拿到的第一張撲克(假如是3)是不用比較的,而且可以認為,它是有序的。

2,拿到第二張牌(假如是2)的時候,我們只要和第一張比較,放到合適的位置(現在是2,3),保持有序。

3,接著拿到第三張牌,我們只要和原來有序的序列(2,3)比較組成一個元素加一個的新有序序列即可。

(我們只要從右到左用在原序列一個個比較即可,如是5,只比較一次就可以決定放在3前,如果是1,那就比較兩次)

詳解如下圖:


一種簡單的直接插入排序精解


要點:

1,大循環從第二個元素開始,倒著比較

2,小循環的條件有兩種情況

3i在一趟比較的最后要加1,向后一格置入新元素

特征:

1,插入排序是原址排序,最多用了一個輔助空間來放臨時元素

2,新元素之前的部分是本問題的子問題的求解結果

3,完全逆序的比較性能最差(內層循環的次數最多)


for(j=1 ;  j< arr.length ; j++)

{

        key = arr[ j] ;//取出當前要插入比較的新元素

        i = j-1;//小循環指示器

        while( i> -1 && arr[i]>key) {//小循環負責在已經有序的部分中找個合適的位置

                arr[i+1] = arr [i] ;//有序部分比新來元素較大者后移

                --i;//繼續向前尋找位置

        }

        i=i+1;

        arr[i] =  key;//無論是否進入了小循環,把key放在i+1的位置總是對的

  //沒有進入小循環的ij是同一個位置

}



本文已完結;

by mengshengneng@163.com

向AI問一下細節

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

AI

尚义县| 宁强县| 中超| 许昌县| 秭归县| 贵德县| 公安县| 九龙城区| 康保县| 西宁市| 太保市| 织金县| 白山市| 南丹县| 山阴县| 景泰县| 阳山县| 门源| 墨江| 青田县| 个旧市| 岐山县| 金秀| 三江| 喜德县| 资中县| 龙川县| 焦作市| 漯河市| 方正县| 达尔| 永川市| 鲁山县| 鹰潭市| 河间市| 平安县| 定南县| 东乡族自治县| 阳西县| 泰来县| 凯里市|