資料結構59 插入排序演算法

2022-07-07 18:54:15 字數 1504 閱讀 6022

插入排序演算法是所有排序方法中最簡單的一種演算法,其主要的實現思想是將資料按照一定的順序乙個乙個的插入到有序的表中,最終得到的序列就是已經排序好的資料。

直接插入排序是插入排序演算法中的一種,採用的方法是:在新增新的記錄時,使用順序查詢的方式找到其要插入的位置,然後將新記錄插入。

很多初學者所說的插入排序,實際上指的就是直接插入排序演算法,插入排序演算法還包括折半插入排序、2-路插入排序,表插入排序和希爾排序等,後序文章都會一一講到。

例如採用直接插入排序演算法將無序表進行公升序排序的過程為:

圖 1 直接插入排序(1)

圖 2 直接插入排序(2)

圖 3 直接插入排序(3)

圖 4 直接插入排序(4)

圖 5 直接插入排序(5)

圖 6 依次插入記錄4,9和6

直接插入排序的具體**實現為:

#include 

//自定義的輸出函式

void print(int a, int n ,int

i) printf("\n

");}//

直接插入排序函式

void insertsort(int a, int

n) a[j+1] = x; //

插入到正確位置

} print(a, n, i);  

// 列印每次排序後的結果}}

intmain()

; insertsort(a, 8);

return0;

}執行結果為:

1:13752496

2:13752496

3:13572496

4:12357496

5:12345796

6:12345796

7:12345679

直接插入排序演算法本身比較簡潔,容易實現,該演算法的時間複雜度為o(n2)

插入排序的其它 4 種排序方法,在後序章節中有詳細介紹。

資料結構演算法 插入排序

插入排序演算法有兩種,一種是直接插入排序,一種是折半插入排序 直接插入排序 straight insertion sort 每次從無序表中取出第乙個元素,把它插入到有序表的合適位置,使有序表仍然有序。第一趟比較前兩個數,然後把第二個數按大小插入到有序表中 第二趟把第三個資料與前兩個數從後向前掃瞄,把...

資料結構 排序演算法之插入排序

一 排序概念 1 概念 排序是計算機內經常進行的一種操作,其目的是將一組 無序 的記錄序列調整為 有序 的記錄序列。分內部排序和外部排序。若整個排序過程不需要訪問外存便能完成,則稱此類排序問題為內部排序。反之,若參加排序的記錄數量很大,整個序列的排序過程不可能在記憶體中完成,則稱此類排序問題為外部排...

資料結構與演算法 插入排序

將乙個資料插入到已經排好序的有序資料中,從而得到乙個新的 個數加一的有序資料 插入排序分為兩種 直接插入排序和希爾排序 插入排序與打撲克時整理手上的牌非常類似。摸來的第1張牌無須整理,此後每次從桌上的牌 無序區 中摸最上面的1張並插入左手的牌 有序區 中正確的位置上。為了找到這個正確的位置,須自左向...