首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >二分搜索条件

二分搜索条件
EN

Stack Overflow用户
提问于 2018-11-12 10:59:46
回答 1查看 48关注 0票数 0

在使用二进制搜索解决搜索问题时,循环条件有时是while low < hi,有时是while low <= hi

我试图根据我得到的输出在这两个条件之间进行切换,但我希望对如何区分这两个条件有一个更好的直觉,并知道何时使用哪个条件。

选择要使用的条件的简单方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2018-11-19 17:28:22

如果实现得当,这两种方法理想情况下都能正确地解决问题。就我个人而言,我喜欢遵循low <= hi方法。

伪代码:

代码语言:javascript
复制
while(low <= hi){
    int mid = (low + hi)/2;
    if(check condition for mid){
       result = mid;
       hi = mid - 1; or low = mid + 1;
    }else{
       low = mid + 1; or hi = mid - 1;
    }
}

在上面的代码中,我们检查mid是否满足我们的解决方案的可能答案的条件,并根据这一条件向左或右子序列移动。还要注意,向左或向右子序列的移动取决于我们是否想要找到问题的最大值或最小值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53255441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档