如何找到给定表达式的平均/预期时间?

时间:2017-11-02 01:55:51

标签: big-o complexity-theory asymptotic-complexity

(n * log_2 n) + (n^1.01 * (log_2 n)^10)

并且它比O(n^1.03)好吗?如果是,请解释,如何知道最坏情况下的平均情况?

1 个答案:

答案 0 :(得分:2)

理论上,是的。对于任何O(n^p)O(n*log n)O((log n)^k)大于p > 1k > 0

第一个:n^p > (n * log n) <=> n^(p-1) > log n

第二个:n^p > (log n)^k <=> n^(p/k) > log n

这两个不等式都适用于足够大的n

另请注意,对数的基数是无关紧要的,因为不同基数的对数仅因常数因子而不同,因为log_b(x) = log_e(x)/log_e(b)

另一方面,关于平均情况,你唯一可以说的是,仅基于最坏情况,它并不比最坏情况更糟糕。

一个实用的评论:要使n^1.03变为n^1.01的两倍,您需要(n^1.03)/(n^1.01) = 2 <=> n^0.02 = 2 <=> n = 2^50。那太棒了!