二分查找的实现

Posted 七月在线julyedu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二分查找的实现相关的知识,希望对你有一定的参考价值。


今日面试题分享


二分查找的实现


题目描述

下面是折半查找的实现,data是按升序排列的数据,x是查找下标,y是查找的上标,

v是查找的数值,返回v在data的索引,若没找到返回-1。代码不正确是____。


二分查找的实现



分析与解法


解析:上下标没有写清楚,题目所指的应该是[x,y),这样5应该是m-1

而在下标为[x,y]的情况下,1,4,5都是有问题的。。。。正确版本应该是这样吧

while(x<=y) {

        m = x + (y-x)/2; //2

        if(data[m] == v) return m; //3

        else if(data[m] > v) y = m-1; //4

        else x = m+1; //5

    }


补充:这里下标是个坑,记住上限有没有包含就可以对付1,4,5处的问题(熟记理解两个版本的代码区别),然后是2,写成x+(y-x)/2是防止xy都很大的情况下x+y越界。这样的话应对二分查找应该够了



题目来源:七月在线官网(www.julyedu.com)——面试题库——面试大题——算法


END



二分查找的实现


今日学习推荐


机器学习集训营第八期

火热报名中


2019年5月6日开课


前120人特惠价:14999 


报名加送18VIP[包2018全年在线课程和全年GPU]


且两人及两人以上组团还能各减500元

有意的亲们抓紧时间喽


julyedukefu_02


扫描下方二维码

免费试听


二分查找的实现


二分查找的实现


二分查找的实现




扫描下方二维码  关注:七月在线实验室 


后台回复:100   免费领取【机器学习面试100题】

后台回复:干货 免费领取全体系人工智能学习资料

后台回复: 领资料  免费领取全套【NLP工程师必备干货资料】

▼更多精彩推荐,请关注我们▼
二分查找的实现
把时间交给学习
二分查找的实现
“阅读原文”我们一起进步
在看点一下

以上是关于二分查找的实现的主要内容,如果未能解决你的问题,请参考以下文章

Java实现二分查找

java泛型 二分查找

二分查找算法

Go-二分查找算法

二分查找

二分查找实践