插入排序演算法有種遞迴的思想在裡面,它由
n-1趟排序組成。對於第
i趟排序,即對位置i+1處的元素進行排序時,[1:
i]上的元素一定是已經有序的了,接著將第
i+1位元素與[1:
i]區間內元素進行比較,插入合適的位置。其中,插入過程中可分為兩種,一種是邊遍歷比較邊交換位置;一種是找到合適位置後再進行元素移動。下圖為第一種插入過程。
插入排序平均需要n2
/4次比較和n2
/4 次交換
。在最壞的情況下需要n2
/2 次比較和交換;在最好的情況下只需要
n-1次比較和0次交換。
時間複雜度為o(n
2)。對插入排序進行改進可得折半插入排序、2-路插入排序
排序演算法之插入排序
排序演算法之插入排序 1 插入排序的思想 假設在乙個有序序列中 e 0 e i 1 這i 個元素已經排好序,則當要將第 i 1個元素 e 插入該序列時,只需將第 i 1個元素與從 e 0 開始到e i 1 元素進行比較,當發現第 j個元素 e j 在序列中應在 e 前,且 e j 1 應在e 後時,...
排序演算法之插入排序
排序演算法之插入排序 1 插入排序的思想 假設在乙個有序序列中 e 0 e i 1 這i 個元素已經排好序,則當要將第 i 1個元素 e 插入該序列時,只需將第 i 1個元素與從 e 0 開始到e i 1 元素進行比較,當發現第 j個元素 e j 在序列中應在 e 前,且 e j 1 應在e 後時,...
排序演算法之插入排序
本節主要分析插入排序演算法的直接插入排序和希爾 shell 排序 又稱縮小增量排序 1.直接插入排序 該排序是最簡單的排序方法,其基本思想是 假設待排序的記錄存放在陣列r 1.n 中。初始時,r 1 自成1個有序區,無序區為r 2.n 從i 2起直至i n為止,依次將r i 插入當前的有序區r 1....