基礎排序之插入排序

2021-09-29 15:37:23 字數 740 閱讀 7674

主要思想:將數列分為前後兩部分,前一部分有序,後一部分無序, 依次將後面無序的序列中的值插入前面有序的序列中;初始時前面有序序列就是首元素; 實現依舊是兩個巢狀的迴圈。

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

demo:

#include#includeusing namespace std;

//插入排序 時間複雜度 o(n^2)

//數列前部分看為有序,依次將後面無序部分數列插入

void my_swap(int& first, int& second)

void inserttionsort(vector& vec) }}

int main()

; cout << "raw val is:\n";

for (auto i : arr)

cout << i << "\t";

cout << endl;

inserttionsort(arr);

cout << "insertionsorted val is:\n";

for (auto i : arr)

cout << i << "\t";

cout << endl;

system("pause");

return 0;

}

輸出結果:

演算法基礎之排序 插入排序

排序演算法是演算法基礎中最常見也是最應該掌握的演算法。插入排序的想法,和我們玩撲克牌起牌相似。從左手為空開始,撲克牌背面朝上至於桌上,每次從桌面上摸一張牌,並將其插入到左手正確的位置,使得左手中的牌是有序的。為了找到這張牌的正確插入位置,從右到左逐一比較左手中的牌。當摸完桌上的牌時,左手中的牌就是排...

基礎排序 插入排序

插入排序 二個序列,一號序列放的是有序序列,二號序列是無序的,最終的目的是要一號序列是二號序列排好的樣子 首先一號序列是空的,那就取乙個數從二號序列中然後放到一號中,總所周知,乙個數的序列肯定是有序的,然後繼續執行這個操作,從二號序列中取乙個數放到一號序列的後面,你要保證的是一號序列在放下乙個數之前...

排序之插入排序

基本思想 每次將乙個待排序的記錄,按其關鍵字大小插入到前邊已經排好序的子陣列中的適當位置,知道全部記錄插入完成為止。分類 直接插入排序和希爾 shell 排序。一 直接插入排序 基本操作 將當前無序區的第乙個記錄r i 插入到有序區r 1.i 1 中適當的位置,使得r 1.i 變為新的有序區。每次使...