排序演算法(三) 插入排序

2021-07-22 19:17:24 字數 515 閱讀 7882

(一)直接插入排序

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

最優時間複雜度:o(n)

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

穩定性:穩定

直接插入排序(insertion sort),是一種簡單直觀的排序演算法。它的工作原理是通過構建有序序列,對未排序的資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。

插入排序演算法的一般步驟:

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

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

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

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

5.將新元素插入到該位置後,重複2~5

3、插入排序

void insertsort(*a,int len)

a[i+1]=key; //當前值比key小,key插入當前位置的後一位

}}

排序演算法(三)插入排序

今天來更新排序演算法中的第三種演算法 插入排序插入排序是基於比較的排序。所謂的基於比較,就是通過比較陣列中的元素,看誰大誰小,根據結果來調整元素的位置 因此,對於這類排序,就有兩種基本的操作 比較操作 交換操作其中,對於交換操作,可以優化成移動操作,即不直接進行兩個元素的交換,還是用乙個樞軸元素 t...

排序演算法總結(三)插入排序

插入排序的原理是從陣列的某個位置開始依次和前面的位置數相比,找到插入位置,將數插入到該位置,這樣多次插入後,得到的將是乙個有序陣列。include using namespace std void insertsort int arrays,int len int main void inserts...

排序演算法之插入排序(三)

插入排序 把n個待排序的元素看成為乙個有序表和乙個無序表。開始時有序表中只包含1個元素,無序表中包含有n 1個元素,排序過程中每次從無序表中取出第乙個元素,將它插入到有序表中的適當位置,使之成為新的有序表,重複n 1次可完成排序過程。例如 給定乙個陣列 3,1,4,2,5 第一趟3,1,4,2,5 ...