【Algorithm】二分算法

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

二分查找

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

因此,算法如下:

    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

猜你喜欢

转载自my.oschina.net/u/3133467/blog/1802138