A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

优化代码:mid = first+(last-first)/2;//first为数组左边界,last为右边界

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

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

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

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

与君共勉!

1 个回复

倒序浏览
多多交流~~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马