/**
* 3.2 二分法插入排序: 按二分法找到合適的位置,可以減少比較的次數.
* * ex: int nums=; <
* * 8,1,4,2,23,10
* |
* 1,8,4,2,23,10
* |
* 1,4,8,2,23,10
* |
* 1,2,4,8,23,10
* |
* 1,2,4,8,23,10
* |
* 1,2,4,8,10,23
*
* 二分法插入排序是穩定的.
* 二分插入排序的比較次數與待排序記錄的初始狀態無關,僅依賴於記錄的個數.
* 當n較大時,比直接插入排序的最大比較次數少得多,但大於直接插入排序的最小比較次數.
* 演算法的移動次數與直接插入排序演算法的相同,最壞的情況為n2/2,最好的情況為n.
* 平均時間複雜度為o(n2).
* */
public
static
void
binarysort(int nums)
nums[half+1]=insert;
}else
if(nums[i]for(int j=i-1;j>half;j--)
for(int j=half;j>=0;j--)
}}else
if((nums[i]>nums[half])&&(nums[i]1]))}}
}}
二分法插入排序
二分法插入排序 演算法思想簡單描述 在插入第i個元素時,對前面的0 i 1元素進行折半,先跟他們 中間的那個元素比,如果小,則對前半再進行折半,否則對後半 進行折半,直到left right,然後再把第i個元素前1位與目標位置之間 的所有元素後移,再把第i個元素放在目標位置上。二分法沒有排序,只有查...
二分法插入排序
二分法插入排序 演算法思想簡單描寫敘述 在插入第i個元素時,對前面的0 i 1元素進行折半,先跟他們 中間的那個元素比,假設小,則對前半再進行折半,否則對後半 進行折半,直到left right,然後再把第i個元素前1位與目標位置之間 的全部元素後移,再把第i個元素放在目標位置上。二分法沒有排序,僅...
排序 二分法插入排序
不同點 在尋找插入位置的時候採用二分法定位。二分法怎麼定位?執行結果 原陣列 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...