4 插入排序

2021-09-12 07:21:48 字數 869 閱讀 5614

插入排序是把序列的第乙個值當做是有序的序列,把餘下的序列按照排序規則(公升序還是降序)插入到該序列中,當遍歷至序列尾部後,則形成有序序列。

例如:6     5     4     3     2

把6當做是有序序列,把餘下的序列(5,4,3,2)按照公升序插入到有序序列(6)中。

第一趟結果:5     6     4     3     2    有序序列為(5,6)

第二趟結果:4     5     6     3     2    有序序列為(4,5,6)

第三趟結果:3     4     5     6     2    有序序列為(3,4,5,6)

第四趟結果:2     3     4     5     6    結果為有序序列

時間複雜度(完全倒序):

長度為n的序列,需要n-1趟排序,而第 n趟需要移動的次數為:n次,則需要移動次數為:(n-1+1)×(n-1)/2=n×(n-1)/2,時間複雜度的量級為o(n^2)。

#include#include#includeusing namespace std;

const int c_n = 10;

void main()

; srand(time(null));

for (int i = 0; i < c_n; i++)

int temp;

for (int i = 1; i < c_n;i++)

a[j + 1] = temp;

} for (int i = 0; i < c_n; i++)

cout << a[i] << " ";

system("pause");

}

4 插入排序

插入排序的效果就像將乙個陣列模擬成兩個陣列的在選擇 插入的過程。假設在下標 i 之前的是數都已經排好了順序 0 i 1 那麼此次需要找到 i 位置的數的正確位置 k 在尋找這個位置 k 的過程中,逐個比較 i 之前排好順序的陣列,先比較最大的 i 1 位置的數 因為有序,所以 i 以前的數,i 1 ...

4 插入排序

插入排序 insertion sort 的演算法描述是一種簡單直觀的排序演算法。它的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。一般來說,插入排序都採用in place在陣列上實現。具體演算法描述如下 1.從第乙個元素開始,該元素可以認為已經被排序 2...

插入排序演算法(4)

目錄 插入排序演算法原理 插入排序演算法的使用場景 插入排序演算法的實現 插入排序演算法的執行結果 在插入排序中,需要將取出的資料與其左邊的數字進行比較。就跟前面講的步驟一樣,如果左邊的數字更小,就不需要繼續比較,本輪操作到此結束,自然也不需要交換數字的位置。然而,如果取出的數字比左邊已歸位的數字都...