八大排序之二分法插入排序

2021-07-10 17:39:32 字數 453 閱讀 6807

二分法插入排序,就是鎖定左右區間在區間內一步一步縮小,從而找到合適的位置

就是將小區間排序,然後一步一步堆疊起來就可以了

核心的找位置是這樣的

要是中間的數大於索要比較的數,就將最高限改為中間位置的前乙個

要是中間數小於所要比較的數,就將最低位改為中間位置後乙個,

後面的反覆以往就可以

直到,最高位等於最低位,說明找到了要插入的位置

下面直接上**

#includeint a[10]=;

main()

if(end//如果說當前的兩數不相等或者上限小於當前的有序隊

t=a[i];

for(j=k-1;j>=start;j--)//所有的當前資料後移

a[j+1]=a[j];

a[end]=t;

k++; //擴大要排序的區間

} }for(int m=0;m

排序 二分法插入排序

不同點 在尋找插入位置的時候採用二分法定位。二分法怎麼定位?執行結果 原陣列 21 8 2 18 0 9 27 12 5 24 第0次迴圈排序結果 8 21 2 18 0 9 27 12 5 24 第1次迴圈排序結果 2 8 21 18 0 9 27 12 5 24 第2次迴圈排序結果 2 8 18...

二分法插入排序

二分法插入排序 演算法思想簡單描述 在插入第i個元素時,對前面的0 i 1元素進行折半,先跟他們 中間的那個元素比,如果小,則對前半再進行折半,否則對後半 進行折半,直到left right,然後再把第i個元素前1位與目標位置之間 的所有元素後移,再把第i個元素放在目標位置上。二分法沒有排序,只有查...

二分法插入排序

二分法插入排序 演算法思想簡單描寫敘述 在插入第i個元素時,對前面的0 i 1元素進行折半,先跟他們 中間的那個元素比,假設小,則對前半再進行折半,否則對後半 進行折半,直到left right,然後再把第i個元素前1位與目標位置之間 的全部元素後移,再把第i個元素放在目標位置上。二分法沒有排序,僅...