排序方法總結(2) 插入排序

2021-06-23 00:38:13 字數 1064 閱讀 7809

插入排序類和大家玩的紙牌遊戲有些類似,在發牌的過程的過程中用右手起的牌,總是和左手裡的排進行比較,然後放在恰當的位置。這就是插入排序的思想。

以陣列為例,其演算法是:

(1)把陣列裡第乙個資料放在a[0]的位置,然後從

a[1]

開始,以後的每乙個數依次和它前面已經排好的數進行比較,然後放在合適的位置。

(2)a[1]可以放在兩個位置乙個是陣列的頭位置,乙個是其現在的位置即

a[1]

(3)從a[2]

開始的資料,就有三種放法了,乙個是陣列的頭位置,乙個是其現在的位置,另乙個是他前面已排好的資料的中間。

(4)若資料插入頭和中間,從插入位置開始,它以後的資料位置依次往後挪動乙個位置這就是插入排序的演算法。

下面是插入排序實現的c++

**。

c++**

#include

using namespace std;

void sort2(int inarray,int insize)

inarray[j+1]=element;

}

}

int main()

;

sort2(a,10);

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

cout<

return 0;

}

演算法複雜度  n^2 

優點:(1)      易於實現

(2)      對於少量資料非常高效

(3)      執行時占用記憶體很少

(4)      演算法穩定

缺點:(1)對於一般數量和大量資料效率非常的低

下面將會介紹希爾排序。

排序 2 插入排序

插入排序 1.想象桌子上有一堆撲克牌,左手中只有一張,數值是2,然後從桌子上拿起一張,數值是5,將這張撲克牌的和左手上的撲克牌進行比較,把較小的哪乙個放到左邊,於是左手上的撲克牌變成兩張,排列從左到右分別是 2,5。2.然後再從桌子上拿起一張牌3,此時左手上已經有兩張牌並且已經排好順序,左邊的小右邊...

排序總結 插入排序

created by liyuanshuo on 2017 3 17.include insertion sort.h a unsort array n total numbers of element in array 1.從第乙個元素開始,該元素可以認為是已經被排序 2.取出下乙個元素,在已經排...

插入排序總結

典型的比較排序演算法 插入排序 堆排序 快速排序。根據演算法導論中出現的先後順序,首先出場的是插入排序 一.原版插入排序偽 1.for j 2 to a.length 為陣列a的長度 2.for i j 1 downto 1 3.if a i a i 1 4.exchange a i with a ...