algorithm - Binary Search 可以/Is Binary Search 是一种贪心算法吗?

标签 algorithm binary-search greedy

我正在阅读关于 Binary search 的不同 Material ,我不清楚它是一个贪婪的二进制文件(在我看来它不是)或者,它可以是一个具有某些特定实现的贪婪算法吗?

如果它可以是贪心的,它有什么意义呢?如果通过选择局部最优来获得全局最优,而不重新考虑之前的选择,则不能保证二分查找的正确结果。

最佳答案

我想如果您从侧面斜视它,您会发现二分搜索是贪婪的,因为您试图在每一步中尽可能多地减少搜索空间。它恰好是搜索空间中的一种贪心算法,其结构既高效又总能找到正确答案。

我不习惯斜视。

也就是说二分搜索可以在传统的贪心算法中使用。例如,包装问题的贪心算法可能会要求您接下来选择“仍然可以容纳的最大可用项目”。可以使用二进制搜索来找到它。

相反,可以使用贪心算法来创建非常适合二分查找的数据结构。参见示例 https://en.wikipedia.org/wiki/Geometry_of_binary_search_trees#Greedy_algorithm

关于algorithm - Binary Search 可以/Is Binary Search 是一种贪心算法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45303599/

相关文章:

python - 给定一个输入字符串,如何在 O(k logN + W) 时间内搜索所有变位词,其中 W 是输出大小,k 是字符串中的最大字符数?

python - 当因式分解中出现的(短〜)素数列表已知时,有哪些有效的整数因式分解算法?

java - 通过 2 数组进行二分查找

c++ - 矩形交叉点

algorithm - 如何将树形成通往每片叶子的单独路径

algorithm - 为什么 Dijkstra 算法不适用于负权重边?

algorithm - 最有效的座位安排

java - 我如何编写一个 Java 代码,通过使用贪心算法设计来解决这个问题?

algorithm - 是 O(n^2) 还是 O(1)?

algorithm - 广泛的递归教程