插入排序 Insertion sort

2021-10-03 17:46:51 字數 389 閱讀 7079

從陣列第乙個元素開始,跟前乙個元素進行比較(第0個元素沒有前乙個元素,所以從第乙個開始),如果該元素比前乙個元素小,則交換,如果前邊還有元素,繼續比較交換,該數字比前乙個數字大,則停止比較,繼續到後乙個數做同樣的動作.

public class insertionsort 

public static void insertionsort(int arr)}}

}

插入排序的時間複雜度同資料狀況有關係,當針對乙個已經有序的數列進行排序時(最優),時間複雜度為o(n),當乙個反序數列進行排序時(最差),時間複雜度為o(n^2)

這種時間複雜度同資料狀況有關係的情況,一律按最差情況的時間複雜度作為它的時間複雜度.

時間複雜度: o(n^2) 

插入排序 折半插入排序

折半插入排序 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...