二分法插入排序 Binary Sort

2021-07-23 20:41:27 字數 994 閱讀 3537

/**

* 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...