【发布时间】: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