请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答 回答被采纳积分+3

1回答

liuyubobobo 2018-02-06 01:47:26

对浮点数做二分查找和对整型索引做二分查找完全不一样哦。


一方面,因为浮点数是“无缝连接”的,所以每一次没有找到,不能使用r=mid-1或者l=mid+1。这个+1;-1之间,其实少搜索了很多浮点数!;

另外,退出终止条件也最好不是l <= r,应该判断l和r在某一个精度范围里。


可以自己试试看:)加油!


0 回复 有任何疑惑可以回复我~
  • 提问者 Braincy #1
    r和l不是数组的索引吗,应该只要修改一下相等的条件就好了
            if( abs(arr[mid] - target) < 1e-8 )
                return mid;
    回复 有任何疑惑可以回复我~ 2018-02-06 10:37:46
  • liuyubobobo 回复 提问者 Braincy #2
    请详细描述你的具体问题。输入是什么,希望完成什么逻辑,得到什么输出。
    回复 有任何疑惑可以回复我~ 2018-02-06 10:39:04
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信