大欧米茄表示法。我这样做对吗?
如果我有一些算法,最好运行 n 次,最差运行 n^2 次,可以说该算法是 Big Omega (n) 吗?
这是否意味着算法将至少运行 n(次)? 我只是不确定我的想法是否正确。
谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如果我有一些算法,最好运行 n 次,最差运行 n^2 次,可以说该算法是 Big Omega (n) 吗?
这是否意味着算法将至少运行 n(次)? 我只是不确定我的想法是否正确。
谢谢。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
对于 Big Oh,您将说明最坏的时间作为所需的时间,在您的情况下为
O(n^2)
。对于 Big Omega,您可以指定最小时间,在本例中为f(n)
。另请参阅Big O 指南 以及这个讨论大O和大欧米茄。
For Big Oh, you will state the worst time as the time it takes, in your case
O(n^2)
. For Big Omega, you state the smallest time, in this casef(n)
.Also see this guide to Big O and this discussion of Big O and Big Omega.
是的。如果运行时 f(n) 渐近有界为 g(n) = n,则 f(n) 为 BigOmega(n)。
编辑:大多数时候,算法是根据最坏情况的行为来分析的——
对应于“Big O”符号。在你的例子中,运行时间是 O(n^2)。
但对于那些罕见的情况,当你需要谈论下限时,或者最好
案例行为,使用“Big Omega”符号。在你的情况下,运行时
至少 n,因此将其描述为 BigOmega(n) 是正确的。
Yes. If the runtime f(n) is asymptotically bounded below by g(n) = n, then f(n) is BigOmega(n).
Edit: Most of the time, algorithms are analyzed in terms of their worst-case behavior --
which corresponds to "Big O" notation. In your case, the runtime is O(n^2).
But for those rare occasions when you need to talk about a lower bound, or best
case behavior, "Big Omega" notation is used. And in your case, the runtime
is at least n, so it is correct to describe it as BigOmega(n).