【问题标题】:Binary search - moving the low & high indices [duplicate]二分搜索 - 移动低和高索引[重复]
【发布时间】:2020-11-20 17:58:52
【问题描述】:

在二分搜索实现中,我看到一些版本使用条件low < high 来终止循环,而一些版本使用low <= high

看起来low <= high 通常用于搜索特定值时。

low < high 用于实现应用谓词的算法的离散变体,该谓词在搜索空间中为真或假并识别拐点(如 go 的 Search https://github.com/golang/go/blob/master/src/sort/search.go#L9)

这种解释是否正确,并且是算法正确性所必需的?我发现很难掌握何时使用 <<= 背后的直觉

【问题讨论】:

标签: algorithm search binary-search


【解决方案1】:

没关系。

如果是正确的二分查找,无论实现细节如何,它都必须正常工作。

两者都可以使用,low < high 可以多一步,但在复杂性比较中你不关心它。在现实生活中,你也不在乎它。

【讨论】:

    猜你喜欢
    • 2020-11-16
    • 1970-01-01
    • 2016-11-11
    • 2021-11-14
    • 1970-01-01
    • 2014-10-05
    • 2011-06-09
    • 1970-01-01
    • 2018-11-24
    相关资源
    最近更新 更多