【Algorithm】二分算法

原创
2018/04/27 12:59
阅读数 75

之前在面试的,被问到,一脸懵逼,在学校的时候,学过算法,出来工作后,就没有写过,这次面试,算是给我提个醒吧,因此,来学习下算法。

二分查找

简单来说,就是一个有序数列,每次对比中间。

因此,算法如下:

    public static int binarySearch2 (int [] arrays, int key) {

        int length = arrays.length;
        int mid;
        int start = 0;
        int end = length - 1;

        while (start <= end) {

            mid = (end - start) / 2 + start;

            if (key < arrays[mid]) {
                end = mid - 1;
            } else if (key > arrays[mid]) {
                start = mid + 1;
            } else {
                return mid;
            }
        }

        return -1;
    }

代码:BinarySearch.java

展开阅读全文
打赏
0
7 收藏
分享
加载中
更多评论
打赏
0 评论
7 收藏
0
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部