随笔

原创 2016年05月30日 14:39:35

二分查找

输入: 查找数组和查找值
输出: 数组下标值,若找到为查找值对应下标值,若没找到为比查找值小的数组值的下标值

例如:
输入:

int[] arr = {1,3,5,7,8,9,13};
int target = 4;

输出:1

代码中要注意的是 low<=highreturn low-1

static int BinarySearch(int arr[], int k) {
    int low = 0, high = arr.length-1, mid;

    while(low <= high) {
        mid = (low + high) / 2;
        if (k == arr[mid])
            return mid;
        else if (k < arr[mid]) {
            high = mid - 1;
         }
        else {
            low = mid + 1;
        }
    }
    return low-1;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:随笔
举报原因:
原因补充:

(最多只允许输入30个字)