基本排序之插入排序

2022-08-16 02:54:11 字數 942 閱讀 9840

概述:

(1) 把第乙個元素看成乙個已排序的元素(因為只有乙個,所以可以看成已經排序好的)。

(2)用第二個元素和第乙個元素比較,如果第二個元素小於第乙個元素,那麼進行交換。

用第三個元素和第二個元素比較,如果第三個元素小於第二個元素,那麼進行交換。

交換完畢之後再看,現在的第二個元素是否小於第乙個元素,如果小於,那麼進行交換。

以此類推,直至最後乙個元素。

(3)碰到第乙個不大於此元素的數時,就不繼續往前。

就和玩撲克牌一樣,先拿一張手牌放著,抽第二張牌的時候,如果比第一張小,那麼就放在第一張之前。

再繼續抽第三張,如果比第二張小,就往前再比較,如果比第一張小,那麼再往前,放在第一張位置處。如果比第一張大,那就停住,放在第二張的地方。

以此類推。

穩定性:

穩定演算法。

時間複雜度:

如果乙個陣列是逆序,那麼使用插入排序的話,下標i要進行i次的交換,所以最壞的時間複雜度就是(n-1)+(n-2)+...+2+1=n(n-1)/2,故時間複雜度為o(n²)。

**:

#include using

namespace

std;

template

void insertsort(t array,int

length)

}}int

main()

; insertsort(array,

10);

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

return0;

}

基本排序之插入排序

關於排序,你最重要的一定要學會它的思想,也就是通過什麼方式排序?這裡就是乙個插入法,也就是無序的元素,依次插入有序的序列中,是和前面有很明顯的不同,前面都是相互交換,這裡是插進去,看到區別了嗎?插入排序也是很簡單的一種,看 吧,沒什麼好說的 includeusing namespace std te...

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

早上有人跟我說今天是二月二,龍抬頭的日子,大吉大利。確實,陽光明媚,風和日麗,適合出去散散步。又想回來,目前的我,基礎著實還是有點不夠紮實,那就一點一點的再去慢慢積累吧。那就從最簡單的開始吧,真知往往就在最簡單的東西裡面,一起去挖掘吧 just for studying.昨天又重新看了基本排序演算法...

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

插入排序的基本方法是 每步將乙個待排序的元素,按其排序碼大小,插入到前面已經排好序的一組元素的適當位置上去,直到元素全部插入為止。可以選擇不同的方法在已經排好序的有序資料表中尋找插入位置。依據查詢方法的不同,有多種插入排序。下面介紹直接插入排序 直接插入排序的基本思想 當插入第i i 1 個元素時,...