(第11讲)二分排序(折半插入排序法)

来源:互联网 发布:淘宝商品类目大全 编辑:程序博客网 时间:2024/06/05 10:45

第十一讲

二分排序(折半插入排序法)的基本思想是:设有一个序列a[0],a[1]......a[n];其中a[i-1]个有序,插入a[i],利用二分法搜索a[i]插入的位置。

程序如下:

public class Binary {
public static void main(String[] args) { 
int arr[] = { 90, 343, 12, 3, -13, 45 };
BinaryCharu hs = new BinaryCharu();
hs.half(arr);
}
}
class BinaryCharu {
public void half(int a[]) {
int left, right, mid;
int number;
for (int i = 1; i < a.length; i++) {
left = 0;
right = i - 1;
number = a[i];
// 通过二分法定位数据number的位置
while (left <= right)
{
mid = (left + right) / 2;
if (number < a[mid])
{
right = mid - 1;

else
{
left = mid + 1;
}
}
for (int j = i - 1; j >= left; j--) 
{
a[j + 1] = a[j];
}
a[left] = number;
}
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + "  ");
}
}
}

0 0
原创粉丝点击