求解大θ符号



我在解决大θ符号时遇到了问题。我知道大O表示法表示最坏情况和上限,而Omega表示法表示最佳情况和下限。

如果给我一个在O(nlogn)时间和Omega(n)下运行的算法,我将如何推断Theta等于什么?我开始假设存在一个θ符号,当且仅当O和Omega相等,这是真的吗?

假设您的算法在 f(x) 中运行。

  • f(x) = O(n*log(n))意味着对于足够高的x,有一些恒定的c1 > 0,因此f(x)将始终小于c1*n*log(n)
  • f(x) = Omega(n)意味着对于足够高的x,有一些恒定的c2 > 0,因此f(x)将大于c2*n
  • 所以你现在所知道的是,从某个点开始(x足够大),你的算法将比c2*n运行得更快,比c1*n*log(n)运行得慢。

  • f(x) = Theta(g(x))意味着对于足够大x有一些c3 > 0c4 > 0,因此c3*g(x) <= f(x) <= c4*g(x),这意味着f(x)只会比g(x)运行一个常数因子更快或更慢。所以确实,f(x) = O(g(x))f(x) = Omega(g(x)).

    结论:只给出O和Omega,如果它们不一样,你就无法得出θ是什么的结论。如果你有算法,你可以试着看看O是否被选择得太高,或者Omega可能被选得太低。

  • 相关内容

    • 没有找到相关文章

    最新更新