排序 2 插入排序

2021-09-23 17:35:28 字數 1328 閱讀 4306

插入排序

1.想象桌子上有一堆撲克牌,左手中只有一張,數值是2,然後從桌子上拿起一張,數值是5,將這張撲克牌的和左手上的撲克牌進行比較,把較小的哪乙個放到左邊,於是左手上的撲克牌變成兩張,排列從左到右分別是:2,5。

2.然後再從桌子上拿起一張牌3,此時左手上已經有兩張牌並且已經排好順序,左邊的小右邊的大。然後我們把剛剛拿起的第三張牌和左手上的撲克牌進行比較,從左開始,那麼就是先和2比較,3>2,於是再和下乙個比較,3<5,那麼就把5往後移動,在2和5之間留出乙個空格來放置3,停止比較,去桌子上抓下一張牌。

3.重複上一步,直到桌子上再也沒有撲克牌。

假設有陣列a[10]=,

我們把a[0]當成左手上的第一張牌,a[1]-a[9]當成是桌子上的那一堆牌:

然後開始執行插入排序,將4與8相比較,4<8 

然後將8向右移動:

再把4放置到空位上:

這樣就做好了第一輪排序,再執行下一輪:

6先與4比較,6>4,不滿足條件再和下乙個比較,8>6,滿足條件,於是將8向右移動,這樣就又出現乙個空位:

把6填進去:

以此類推,直到所有元素都排序完成。

**:

class program

;console.writeline("未排序之前的順序:");

foreach (int s in a)

",s); }

int j, k;

for (int i=1;ij;k--)

a[j] = temp;

}console.writeline("排序之後的順序:");

foreach (int s in a)

", s); }

console.readkey();}}

執行結果:

排序小結 2 插入排序

插入排序 插入排序 insertion sort 的基本思想是 每次將乙個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子檔案中的適當位置,直到全部記錄插入完成為止。本節介紹兩種插入排序方法 直接插入排序和希爾排序。直接插入排序基本思想 1 基本思想 假設待排序的記錄存放在陣列r 1.n 中。初...

排序演算法 2 插入排序

插入排序 insertion sort 的基本思想是 每次將乙個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子檔案中的適當位置,直到全部記錄插入完成為止。本節介紹兩種插入排序方法 直接插入排序和希爾排序。直接插入排序 直接插入排序基本思想 1 基本思想 假設待排序的記錄存放在陣列r 1.n 中...

排序演算法 2 插入排序

思路是 每次從未排好的序列中選出第乙個元素插入到已排好的序列中。步驟可以大致歸納如下 1.從未排好的序列中拿出首元素,並把它賦值給temp變數 2.從排好的序列中,依次與temp進行比較,如果元素比temp大,則將元素後移 實際上放置temp的元素位置已經空出 3.直到找到乙個元素比temp小,將t...