十大排序演算法 二分插入排序法(C語言)

2021-10-05 07:41:40 字數 831 閱讀 3203

比較著看可以加深印象

按由大到小來說

同直接插入排序一樣,也是分有序序列和無序序列,將待排序的無序序列插入到有序序列當中。

二分插入是把待插入數值先和有序序列的中間數值進行比較,如果比中間值大,就在中間值的左側在找中間值進行比較,如果比中間值小,就在中間值的右側在找中間值進行比較,直到找到合適的位置插入到有序序列中。

#include

#include

#include

//type為 0 時排序從小到大,為 1 時排序從大到小

void

insertion

(int a,

int n,

int type)

else

}for

(int j = i-

1; j >= left; j--

)//將left到i-1之間的數都往後移動乙個位置

//注意如果要插入的數比前面排好序的數都大或者都小,則不會進入到該迴圈內,則此時將不會有數進行位置的移動

a[left]

= temp;

//將要插入的數值插入到合適位置 }}

void

main()

insertion

(a,10,1

);//呼叫二分插入排序法

//輸出結果

for( i =

0; i <

10; i++

)system

("pause");

//為了防止控制台閃退用的

}

有說的不對的地方請各位大佬多多指教!

十大排序演算法(二)插入排序

前言 插入排序也叫 插牌法 排序 演算法 1tmp記錄第n個元素,並將第n個元素設為空位 n 1 2依次用前n個元素 和tmp比較 如果tmp比他們小,將他插入此位置,此時空位前移,再重複迴圈之至比到第乙個位置 核心 k標記位置 tmp儲存元素 a j 1 a j 元素前移 時間複雜度 最好o n ...

十大排序演算法 插入排序

原理 就好比我們打撲克排的抓牌階段,我們一般拿到一張新的排會與前面的牌進行比較,然後放到合適的位置,即每次抓到牌後預設前面的牌已經全部排好序。將第一待排序序列第乙個元素看做乙個有序序列,把第二個元素到最後乙個元素當成是未排序序列。從頭到尾依次掃瞄未排序序列,將掃瞄到的每個元素插入有序序列的適當位置。...

十大排序 插入排序

插入排序的思想 插入排序的思想有點類似摸撲克牌,首先抽取第一張,當做已經排好序,然後第二張,插入到已經排好序的撲克牌中,依次類推,第三張.直到最後一張。void insertsort int arr,int len arr j tmp tmp arr i 分析 插入排序比氣泡排序快。在陣列基本有序的...