随笔

二分查找

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

例如:
输入:

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;
}
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lovehoo/article/details/51537757
个人分类: 算法
上一篇python运行不了 AttributeError: module object has no attribute getdefaultlocale
下一篇子类方法与父类方法
想对作者说点什么? 我来说一句

oracle 数据仓库随笔

2011年06月29日 547KB 下载

培根随笔集 英语原文

2009年04月06日 150KB 下载

5月随笔

为了誓言

rui_yi rui_yi

2016-08-02 18:34:11

阅读数:314

没有更多推荐了,返回首页

关闭
关闭