排序演算法之插入排序

2021-09-27 21:53:41 字數 599 閱讀 3767

每一趟排序都是將未排序的第乙個元素與已排序的元素的最後乙個元素開始往前比較,如果已排序元素比它大,則已排序元素往後移動一位,如此直到找到第乙個比它小的元素,插入到該元素之後的位置。

以陣列為例:

第一趟排序:8 9 6 0 11 10插入8,比較1次

第二趟排序:6 8 9 0 11 10插入6,比較2次

第三趟排序:0 6 8 9 11 10插入0,比較3次

第四趟排序:0 6 8 9 11 10插入11,比較1次

第五趟排序:0 6 8 9 10 11插入10,比較2次

template

<

typename t>

vector

insertsort

(vector a)

return a;

}

插入排序是穩定的原地排序

插入排序每次排序不一定能確定元素的位置

插入排序的最好、最壞和平均時間複雜度為o(n)、o(n2)和o(n2)

排序演算法之插入排序

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