排序之插入排序

2021-08-09 09:39:02 字數 732 閱讀 3887

本人是純正的蒟蒻。

寫這些部落格目的是為了複習一些基礎知識,同時也幫助一下比我還要弱的蒟蒻(估計沒有)。

排序

排序有很多種,這裡先介紹幾種最基本,最簡單的。

一.插入排序(

主要思想:假設前面n個元素已經有序排列,現在要插入乙個元素,使這n+1個元素有序,先在原有序列中找到應該插入的位置,然後把這個位置的數及其後面的數都往後移動一位,這樣就空出了乙個位置,這個位置就是我們要插入的位置。

例如(從小到大)

原有序數列 1 3 6 7 10 15

對應位置 1 2 3 4 5 6

要插入乙個 8

經過比較發現 8>7且8<10(10是第乙個比8大的元素),所以8要插在7後面,10前面,7對應陣列中的下表是4

所以我們將4號位置後面的所有元素向後移動一位

即 1 3 6 7 x 10 15

1 2 3 4 5 6 7

x為要插入元素

最後將插入元素填入5號位置,就完成了一次插入。

偽**如下:

void charu()

{ for(int i=2;i<=n;i++) }

如果陣列中第乙個元素就比要插入元素大的話,整個陣列後移,插入元素為a[1];

注意

插入排序時間複雜度(n^2)

插入排序還算穩定。

未完

排序之插入排序

基本思想 每次將乙個待排序的記錄,按其關鍵字大小插入到前邊已經排好序的子陣列中的適當位置,知道全部記錄插入完成為止。分類 直接插入排序和希爾 shell 排序。一 直接插入排序 基本操作 將當前無序區的第乙個記錄r i 插入到有序區r 1.i 1 中適當的位置,使得r 1.i 變為新的有序區。每次使...

排序之插入排序

插入演算法 迴圈陣列,以指標資料為基值 並且記錄,通過和左側 右側 的迴圈比較,當比較值大於 小於 基值時 將大的值至後,指標繼續移動,比較,置換。直到遇到小於基值,或者到陣列邊界時截止,並且置換至首位。結束一次內迴圈,這是外迴圈的指標左側的是有序。class sort public static ...

7 插入排序之折半插入排序

7 折半插入排序 折半插入 考慮到插入第i個元素前面的i 1個元素是有序的,計算0 i 1的中間點,和i個元素進行比較,這樣完成了折半。然後不停地用上面的步驟,快速的找出第i個元素的位置。時間複雜度 折半插入排序比直接插入排序明顯減少了關鍵字之間的比較次數,但是移動次數是沒有改變。所以,折半插入排序...