排序演算法複習 直接插入排序

2022-08-29 10:33:14 字數 690 閱讀 6458

直接插入排序的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。插入排序在實現上,通常採用in-place排序(即只需用到o(1)的額外空間的排序),因而在從後向前掃瞄過程中,需要反覆把已排序元素逐步向後挪位,為最新元素提供插入空間。

具體演算法描述如下:

1.從第乙個元素開始,該元素可以認為已經被排序

2.取出下乙個元素,在已經排序的元素序列中從後向前掃瞄

3.如果該元素(已排序)大於新元素,將該元素移到下一位置

4.重複步驟3,直到找到已排序的元素小於或者等於新元素的位置

5.將新元素插入到該位置後

6.重複步驟2~5

還是**看著直接,c語言實現如下:

1

int a=;

2int length=sizeof(a)/sizeof(int);3

int n=length-1;4

inti,j,key;56

for(i=1; i<=n;i++)

715 a[j+1]=key;16}

17 }

在stl的sort演算法和stdlib的qsort演算法中,都將插入排序作為快速排序的補充,用於少量元素的排序(通常為8個或以下)。

直接插入排序法比冒泡和簡單選擇排序的效能要好一些。

演算法複習 直接插入排序

直接插入排序是穩定排序 相同的值不會改變原來的順序 直接插入排序的演算法思路 1 設定監視哨r 0 將待插入紀錄的值賦值給r 0 2 設定開始查詢的位置j 3 在陣列中進行搜尋,搜尋中將第j個紀錄後移,直至r 0 key r j key為止 4 將r 0 插入r j 1 的位置上。public cl...

排序演算法 插入排序 直接插入排序

package 插入排序 直接插入排序 從後向前找到合適位置後插入 穩定 基本思想 每步將乙個待排序的記錄,按其順序碼大小插入到前面已經排序的字序列的合適位置 從後向前找到合適位置後 直到全部插入排序完為止。public class 直接插入排序 system.out.println 排序之前 fo...

排序演算法 插入排序 直接插入排序

當插入第i i 1 個元素時,前面的v 0 v i 1 等i 1個 元素已經有序。這時,將第i個元素與前i 1個元素v i 1 v 0 依次比較,找到插入位置即將v i 插入,同時原來位置上的元素向後順移。在這裡,插入位置的查詢是順序查詢。直接插入排序是一種穩定的排序演算法,其實現如下 public...