1 插入排序

2021-10-04 13:31:56 字數 1134 閱讀 5813

一種增量式的做法

在處理少量資料元素進行排序的有效演算法。

**由內外兩層for迴圈構成,內迴圈做比較,外迴圈控制哪個是插入值。

排序引數是乙個陣列 a [1…n]。(包含n個待排序數)

a [ j ] 先放入key變數中。

將陣列邏輯劃分為「手牌區」a [1…j-1],「」key區域=a[ j ] 」 和「待插入區」a [j+1…n](開始時手牌區為1)

key依次從右至左依次與手牌區比較,被比較手牌區值大則向右移動,key再與左邊下乙個手牌值比較,直到被比較手牌小於key,key插入此值右邊位置。

eg:a [5,2,4,6,1,3]

第一次插入,5在手牌區,2(key) 與手牌區5作比較,5向後移動。

第二次插入,(2,5)在手牌區,4(key)在內迴圈中先於5比較,5大向右移動一格,再與2比較,2小,key插入5移去的空缺位置。

第三次插入

第四次插入,key越小,移動個數多。

最終狀態

}//列印

for(

int n:a)

system.out.

print

(n);

}

1)插入排序

直接插入排序的理解 來自維基百科 一般來說,插入排序都採用in place在陣列上實現。具體演算法描述如下 從第乙個元素開始,該元素可以認為已經被排序 取出下乙個元素,在已經排序的元素序列中從後向前掃瞄 如果該元素 已排序 大於新元素,將該元素移到下一位置 重複步驟3,直到找到已排序的元素小於或者等...

1 插入排序

本來是想對插入排序做乙個詳細的說明 從演算法原理 演算法優劣 演算法實現一一說起。但是要將演算法原理說的通俗易懂,不是個簡單的事情,常常需要很好的文筆和配上詳細的圖。但是最近需要複習準備面試,確實沒什麼時間去寫一系列完整地說明演算法的部落格,所以這次就只是寫下演算法實現 c 的細節和詳細注釋,找到新...

排序1 插入排序

讓我們開始排序的學習吧,首先我們先理解一下插入排序的基本思想 每一趟將乙個待排序的記錄,按其關鍵字的大小插入到已經排好序的一組記錄的適當位置上,知道所有待排序記錄全部插入為止。這個可能會和選擇排相似,但是那個是設定最大或最小,然後依次找到最大或最小插入到特定位置,而選擇依次比較後移或前移,不要混淆哦...