插入排序的改进版本(二分查找)

来源:互联网 发布:c#网盘源码 编辑:程序博客网 时间:2024/05/03 16:00

2.二分插入排序


二分插入排序的原理:

二分插入排序就是 在原来的插入排序基础上使用了二分查找法找到待插入位置。在效率上有所提升。

代码如下:

public void baneryInsertSort(int[] array) {
        for (int i = 1; i < array.length; i++) {
            int temp = array[i];
            int left = 0;
            int right = i - 1;
            int middle = 0;
            while (left <= right) {
                middle = (left + right) / 2;
                if (array[middle] > temp) {
                    right = middle - 1;
                } else {
                    left = middle + 1;
                }
            }
            for (int j = i - 1; j >= left; j--) {
                array[j + 1] = array[j];
            }
            array[left] = temp;
        }
    }

0 0
原创粉丝点击