9 F(插入排序)

2021-09-29 19:18:13 字數 1078 閱讀 8293

題目描述

void insertsort(int a,int n); 使用插入排序演算法,將陣列a的前n個元素按照公升序的方式排序。

插入排序演算法描述如下:

初始序列:49 38 65 97 76 13 27 49

將元素(38) 插入合適位置: [38 49] 65 97 76 13 27 49

將元素(65) 插入合適位置: [38 49 65] 97 76 13 27 49

將元素(97) 插入合適位置: [38 49 65 97] 76 13 27 49

將元素(76) 插入合適位置: [38 49 65 76 97] 13 27 49

將元素(13) 插入合適位置: [13 38 49 65 76 97] 27 49

將元素(27) 插入合適位置: [13 27 38 49 65 76 97] 49

將元素(49) 插入合適位置: [13 27 38 49 49 65 76 97]

輸入與輸出要求:首先輸入乙個整數n(1<=n<=1000),代表待排序元素的個數。然後輸入n個整數,每個整數不會超過int型的儲存範圍。輸出為n-1行,依次為1到n-1趟排序後陣列內各個元素。每行輸出的順序為a[0]至a[n-1],數與數之間用空格分開,注意第n個數後沒有空格而是換行符。

輸入樣例

849 38 65 97 76 13 27 49

輸出樣例

38 49 65 97 76 13 27 49

38 49 65 97 76 13 27 49

38 49 65 97 76 13 27 49

38 49 65 76 97 13 27 49

13 38 49 65 76 97 27 49

13 27 38 49 65 76 97 49

13 27 38 49 49 65 76 97

#include

intmain()

for(i=

1;i) a[j+1]

=tem;

for(k=

0;k)printf

("\n");

}return0;

}

插入排序 折半插入排序

折半插入排序 binary insertion sort 直接插入排序採用順序查詢法查詢當前記錄在已排好序的序列中插入位置,這個 查詢 操作可利用 折半查詢 來實 現,由此進行的插入排序稱之為折半插入排序 binary insertion sort 演算法思想 1 將待排序的記錄存放在陣列r 1.n...

插入排序 折半插入排序

折半插入排序是基於直接插入排序的優化。直接插入排序 將第i個元素插入時,通過折半查詢的方式,來查詢第i個元素合適的位置。當0 i 1 位置上的元素都已經排序ok,現需要插入第i個元素,設其值為temp 令low 0,high i,mid high low 2。那麼temp可能插入的位置是 low h...

插入排序 希爾插入排序

本文借鑑於lsgo實驗室創始人馬老師 演算法 希爾插入排序 delta len nums 2 while delta 0 shell delta,nums delta delta 2return nums defshell delta,key for i in range delta,len key...