插入法排序說明

2022-05-03 10:21:11 字數 936 閱讀 5940

排序:2.直接插入法排序

插入法排序的基本思想是:

每一遍將乙個待排序記錄按照關鍵字值的大小插入到已排好序的檔案中的適當位置上,直到全部插完為止。實際上在初始時,所謂已排好序的檔案只有乙個記錄。

[例]:用插入排序法將數值串行9,8,3,5,6,2,7,1,4按公升序排列。

分析:我們假設前i(初始時,程式中取i=1)個單元中數都已經按照公升序排好,要將第i+1個數插入到單元1至單元i+1的合適位置上。

排序步驟是:1。將第i+1個數存入變數k中;

2.用變數k與第i個單元中的數比較。若k值大於第i個單元值,就將k插入到第i+1個單元位置上,否則將第i-1個單元值傳送給第i個單元;

3.用變數k與第i-1個單元中的數比較。若k值大於第i-1個單元值,就將k插入到第i個單元位置上,否則將第i-2個單元值傳送給第i-1個單元;

4.依次類推,直到變數k插入到合適位置為止。

具體排序過程如下(排好序的數括在[ ]中):

初始狀況9] 8 3 5 6 2 7 1 4

i=28 9] 3 5 6 2 7 1 4

i=33 8 9] 5 6 2 7 1 4

i=43 5 8 9] 6 2 7 1 4

i=53 5 6 8 9] 2 7 1 4

i=62 3 5 6 8 9] 7 1 4

i=72 3 5 6 7 8 9] 1 4

i=81 2 3 5 6 7 8 9] 4

i=91 2 3 4 5 6 7 8 9]

用計算機程式語言實現上述排序:

(1) 先將待排序序列存入陣列a中;

(2) 使用二重迴圈,每一次外迴圈完成乙個數的插入操作;內迴圈確定某數的插入位置,然後進行插入,其主要操作由比較和移動位置完成。

C經典演算法 氣泡排序 選擇排序 插入排序 希爾排序

public void bubblesort int r 本趟排序未發生交換,提前終止演算法 if exchange 氣泡排序 本人用了c 開發出氣泡排序演算法。希望能為c 語言的學習者帶來一些益處。不要忘了,學語言要花大力氣學資料結構和演算法。using system namespace bubb...

冒泡法排序

用氣泡排序法對一維整型陣列中的十個數公升序排序 include int main printf the sequence after sort is n for i 0 i 10 i printf 5d a i printf n system pause return 0 其中i 0時 j從0開始a...

句子排序五法

中考句子排序法 湖北省襄陽市襄城區臥龍中學李大文 句子排序題,能考查學生在具體語境中運用所學知識與技能分析問題和解決問題的能力 能綜合考查學生的語言組織能力 句子理解和分析能力,所以,近幾年頗受中考命題者的青睞。那麼,怎樣合理 快速地排列句序呢?其方法有五 一 時空順序法 時空順序包括從古到今 從早...