如何得出Big Theta基于Big-O和Big-Omega值的结论

时间:2018-03-14 09:29:49

标签: time-complexity big-o

说我被告知算法的处理时间是Ω(n)和O(n ^ 3),我被要求得出Big-Theta是否是Θ(n ^ 2)的结论。我该如何回答这个问题?

2 个答案:

答案 0 :(得分:0)

f(n) = Ω(n)f(n) = O(n^3)并不意味着f(n) = Θ(n^2)

为证明这一点,您可以考虑以下反例:

  • f(n) = n。对于n >= 1, n <= f(n) <= n^3f(n) = Ω(n)f(n) = O(n^3),因为对于n >= 1, f(n) < n^2f(n)不是Θ(n^2)

  • f(n) = n^3。对于n >= 1, n <= f(n) <= n^3f(n) = Ω(n)f(n) = O(n^3),因为对于n >= 1, f(n) > n^2f(n)不是Θ(n^2)

答案 1 :(得分:0)

对于给出的示例,结论是这不是一个准确的结论。换句话说,这将是由于该算法的上限是O(n ^ 3),下限是Omega(n),因此无法仅根据这些条目来说明平均情况下的运行时间,因此需要针对多个数据集进行了研究,以找到平均案件时间。通常,在研究算法的最佳和最差运行时时,如果两者相同(意味着算法在两侧受相同的运行时间限制),则可以将Big-theta确定为相同的运行时。否则,将需要有关该算法如何与多个数据集一起运行的更多信息。