如何解决算法的theta界限是否唯一?
例如,二进制搜索的最严格限制是θ(logn)
,但我们也可以说它具有O(n^2)
和Ω(1)
。
但是,由于"Binary search has a θ(n) bound"
)在θ(n
和O(n^2)
之间,我们是否可以说类似Ω(1)
的说法,我感到困惑?
解决方法
- 在大小为 n 的数组上执行最坏情况的二进制搜索使用Θ(log n)操作。 在大小为 n 的数组上执行
- 任何二进制搜索都使用 O(log n)操作。
- 对大小为 n 的数组执行二进制搜索的一些“幸运”执行使用 O(1)操作。
“二进制搜索的复杂度有一个Θ(n)界线”这样的句子含糊不清且具有误导性,以至于大多数人都将其称为错误。通常,我建议您不要在与 O(),Θ(),Ω( )。
- 确实是 log n
。 - log n =Θ(n)是错误的。
- log n 语句在技术上是正确的,但是具有误导性,因此您永远不要编写它。
- 确实, log n = O(n)。
“因为”是错误的。 Θ(n)确实与O(n²)和Ω(1)兼容,但是Θ(log n)也是如此。
在二分搜索的情况下,您可以建立边界O(log n)和Ω(log n),这两个边界是紧密的,并用Θ(log n)概括。
您可能不会“随机地”选择复杂性,而必须证明它们。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。