algorithm - 算法的 theta 界是唯一的吗?
问题描述
例如,二分搜索的最严格界限是θ(logn)
,但我们也可以说它有O(n^2)
和Ω(1)
。
但是,我很困惑我们是否可以说像"Binary search has a θ(n) bound"
since θ(n
) is between O(n^2)
and Ω(1)
?
解决方案
- 对大小为n的数组执行二分查找的最坏情况使用Θ(log n)操作。
- 在大小为n的数组上执行任何二进制搜索都使用O(log n)操作。
- 在大小为n的数组上执行二进制搜索的一些“幸运”执行使用O(1)操作。
“二分搜索的复杂性有一个Θ(n)界限”这句话是如此模棱两可且具有误导性,以至于大多数人会称之为错误。一般来说,我建议您不要在同一个句子中使用“绑定”一词作为符号O( )、Θ( )、Ω( )之一。
- log n < n是真的。
- log n = Θ(n)是错误的。
- 语句log n < Θ(n)在技术上是正确的,但具有误导性,因此您永远不应该编写它。
- 确实log n = O(n)。
推荐阅读
- javascript - 'Observable' 类型上不存在属性 'catch'
' - opencv - 我的 OpenCV 下载有问题吗?
- r - R:如何在 grid.table 中使用等宽(固定宽度)字体?
- bash - 如何使用 bash 按字符串拆分列?
- batch-file - 批处理脚本的奇怪输出
- ansible - Ansible 转义点与 map 函数一起用作属性
- spring - Spring cloud stream kafka - 一个可订阅的频道没有输出
- c++ - 如何在自删除后将对象设置为 nullptr
- react-native - 如何在弹出菜单选项的FlatList视图中使用复选框,react-native?
- c# - 定时器写入数据库的后台任务