二分查找

/**

  • a 为数组,low:最小数 ,high:最大数 value:需要查找的值 时间复杂度 a.count,a.count/2,a.count/4,a.count/2^k (k为循环的次数), a.count/2^k >=1所以 k = log2(a.count) (2为底,a.count对数)
    时间复杂度O(log2(a.count))
    /
    int BrinarySearch(int
    a,int low,int high,int value){
    if (low > high) {
    return -1;
    }
    int mid = (low + high)/2;
    if (value == a[mid]) {
    return a[mid];
    }
    if (a[mid] > value) {
    BrinarySearch(a, low, mid -1, value);
    }else {
    BrinarySearch(a, mid+1, high, value);
    }
    return -1;
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 学习极客时间的数据结构与算法之美的专栏,记录笔记。 1 二分查找应用场景的局限性 (1)二分查找依赖的是顺序表结构...
    疯狂的小强_94ee阅读 374评论 0 0
  • 二分查找下 1.通过ip查找ip归属地 数据库存储的是ip区间和归属地按对储存 2.二分查找变形四个问题 二分查找...
    木木_6088阅读 531评论 0 0
  • 二分查找法,很经典的折半查找算法,想当然觉得很简单,算法效率log(2)N。今天跟它干上了,呵呵。真是实践出真知,...
    David_IT阅读 1,828评论 0 0
  • 我爱你 我也爱你 嗯,我知道 我知道你知道 你怎么什么都知道 我就是什么都知道我知道我爱你我知道你爱我 你还知道什...
    小四狗子阅读 193评论 0 1
  • ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​
    七景鸣阅读 301评论 0 0