排序演算法之插入排序

2021-09-23 23:58:18 字數 612 閱讀 4849

插入排序的基本思想是將資料插入到適合的位置。有兩種方法

直接插入排序

將資料插入到有序序列的合適位置,插入位置後面的資料相應位移。

void

insertsort

(int a,

int n)

}

希爾排序,直接插入排序最耗時的就是每次插入都要移動資料。如果插入前,資料就已經基本有序了,就會降低複雜度。因此希爾排序將原始陣列分割成子序排序,然後再使用直接插入排序。如下面**所示,把d換成1,就是直接插入排序。

void

shellsort

(int a,

int n)

a[j+d]

= t;

} d=d/2;

}}

演算法複雜度分析 演算法

最差時間複雜度

平均時間複雜度

穩定性空間複雜度

直接插入排序

o(n^2)

o(n^2)

穩定o(1)

希爾排序

o(n^2)

o(n^1.5)

不穩定o(1)

排序演算法之插入排序

排序演算法之插入排序 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....