说我被告知算法的处理时间是Ω(n)和O(n ^ 3),我被要求得出Big-Theta是否是Θ(n ^ 2)的结论。我该如何回答这个问题?
答案 0 :(得分:0)
f(n) = Ω(n)
和f(n) = O(n^3)
并不意味着f(n) = Θ(n^2)
。
为证明这一点,您可以考虑以下反例:
f(n) = n
。对于n >= 1, n <= f(n) <= n^3
,f(n) = Ω(n)
和f(n) = O(n^3)
,因为对于n >= 1, f(n) < n^2
,f(n)
不是Θ(n^2)
f(n) = n^3
。对于n >= 1, n <= f(n) <= n^3
,f(n) = Ω(n)
和f(n) = O(n^3)
,因为对于n >= 1, f(n) > n^2
,f(n)
不是Θ(n^2)
答案 1 :(得分:0)
对于给出的示例,结论是这不是一个准确的结论。换句话说,这将是由于该算法的上限是O(n ^ 3),下限是Omega(n),因此无法仅根据这些条目来说明平均情况下的运行时间,因此需要针对多个数据集进行了研究,以找到平均案件时间。通常,在研究算法的最佳和最差运行时时,如果两者相同(意味着算法在两侧受相同的运行时间限制),则可以将Big-theta确定为相同的运行时。否则,将需要有关该算法如何与多个数据集一起运行的更多信息。