黑马程序员技术交流社区

标题: 在写binarySearch时,你还在用mid=(first+last)/2?也太low了! [打印本页]

作者: nblity007    时间: 2016-7-28 23:39
标题: 在写binarySearch时,你还在用mid=(first+last)/2?也太low了!
优化代码:mid = first+(last-first)/2;//first为数组左边界,last为右边界

也许你在疑惑,两个都是 first/2 + last/2 ,有什么区别?

百度了一下几乎所有的二分查找都是用 (first+last)/2,在教学、和练习时确实不能发现问题,但数据过大时就有麻烦了。

当 first+last 超过int表示范围后,一切都崩溃了。相反,用 last-first 则永远不会出现这种问题!

这种细节,是成为程序员中黑马的关键。

与君共勉!

作者: nblity007    时间: 2016-7-29 21:36
多多交流~~~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2