【发布时间】:2015-09-04 20:29:35
【问题描述】:
我总是对二分搜索算法的条件感到困惑,并且在编程竞赛中花费了我很多时间。我的问题是何时使用这些条件?
1.while (low < high)
2.while (high - low > 1)
3. while (low <= high)low = 解集中的最小值。high = 解集中的最大值。
【问题讨论】:
-
你能告诉我们你对
low和high的定义吗? -
没有更多代码/信息,这个问题无法回答。
-
像任何递归过程一样,您需要考虑您的基本情况。这必须是一个总能达到的情况,并且您准备好在没有进一步递归的情况下处理。
-
@deviantfan 这正是我问这个问题的原因,因为我不知道何时在任何类型的二进制搜索问题中使用它们中的每一个,我只是尝试它们中的每一个直到其中一个有效,没有逻辑原因,只是直觉。
标签: java c++ binary-search