Binary search condition(二分搜索条件)
问题描述
我总是对二进制搜索算法的条件感到困惑,它花费了我在编程比赛中的大量时间。我的问题是什么时候使用这些条件?
1.while (low < high)
2.while (high - low > 1)
3.while (low <= high)
low
=解决方案集中的最低值。
high
=解决方案集中的最大值。
推荐答案
while (low < high)
在搜索范围[low, high)
时使用。更新high
时,请使用high = mid
。更新low
时,请使用low = mid + 1
。while (high - low > 1)
在搜索范围(low, high)
时使用。更新high
时,请使用high = mid
。更新low
时,请使用low = mid
。while (low <= high)
在搜索范围[low, high]
时使用。更新high
时,请使用high = mid - 1
。更新low
时,请使用low = mid + 1
。
代码如下:
这篇关于二分搜索条件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!