常見排序演算法 折半 二分 插入排序

2021-08-24 20:47:57 字數 711 閱讀 4518

其實是主要在二分查詢演算法的基礎上執行插入操作

接下來我結合演算法的實際例子來解釋

初始陣列 10 21 7 13 14 3 12 ,對其進行由小到大進行排序

/先解釋一下2分法,比如在乙個有序陣列中,我要查詢數字2在其中的位子,首先先比較2與陣列中間數字3的大小,發現2小於3,則2肯定在數字3的左邊陣列,比較2與的中間數2,發現相等,輸出該個位置即可。/

第一步,看陣列第乙個數10,利用2分法找到10在集合{}的插入位置,進行插入操作後集合變成,/注意,這一步可做可不做。/接下來利用2分法找到下乙個數21在集合的插入位置,進行插入操作後集合變成,接下來利用2分法找到下乙個數7在集合的插入位置,進行插入操作後集合變成…….按照此規則直到所有結點插入完成後即可結束,最後排序為.

//先利用二分尋找法找到這個數應該插

//入的位置,然後對這個位置後面的陣列均向後移一位。

//接下來對下乙個數執行下乙個這樣的操作,直到所有的結點遍歷完成。

void twoins(int a,int n)//功能:遍歷所有結點

}int search(int a,int low,int high,int th)//尋找結點在前面序列中應該插入的位置

return low;

}void pai(int a,int n,int d,int th)//將點插入該數後後面的點都要向後移一位

a[i]=th;

}

排序演算法 二分插入排序(折半排序)演算法原理

對於插入排序,如果比較操作的代價比交換操作大的話,可以採用二分查詢法來減少比較操作的次數,我們稱為二分插入排序 在直接插入排序的基礎上,利用二分 折半 查詢演算法決策出當前元素所要插入的位置。1.找到中間元素,如果中間元素比當前元素大,則當前元素要插入到中間元素的左側 2.否則,中間元素比當前元素小...

常見排序演算法之二分插入排序演算法

1.演算法思路 是在插入第i個元素時 i前面的元素必定是有序的 對前面的0 i 1元素進行折半,先跟他們中間的那個元素比,如果小,則對前半再進行折半,否則對後半進行折半,直到left right,然後再把第i個元素前1位與目標位置之間的所有元素後移,再把第i個元素放在目標位置上。2.特點分析 二分法...

二分插入排序

基本思想 1.取arr 1 為關鍵字key,將key插入前面已拍好的序列中。2.取arr 2 為關鍵字key,將key插入前面已拍好的序列中。3.取arr n 1 為關鍵字key,將key插入前面已拍好的序列中。include include define n 10 void binsertsort...