微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

算法的theta界限是否唯一?

如何解决算法的theta界限是否唯一?

例如,二进制搜索的最严格限制是θ(logn),但我们也可以说它具有O(n^2)Ω(1)

但是,由于"Binary search has a θ(n) bound")在θ(nO(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 举报,一经查实,本站将立刻删除。