如何计算算法的平均复杂度?最糟糕的是,也是最好的,但平均值是如何计算的?
答案 0 :(得分:2)
通过考虑给定大小的所有可能输入并说明所有这些输入中相应度量的平均值的渐近界限,可以找到平均性能(时间,空间等)的复杂性。
例如,通过考虑所有N,可以找到排序的平均“比较次数”复杂度!大小为N的输入的排列以及在所有这些输入上执行的平均比较次数的界限。
即。这是所有可能N的比较数的总和!输入除以N!
由于所有可能输入的平均性能等于同一性能指标的预期值,因此平均性能也称为预期性能。
答案 1 :(得分:2)
根据概率计算所有可能输入和采用加权和的复杂度。这也称为预期的runtine(类似于概率的期望)。
ET(I) = P(X=I1)*T(I1) + P(X=I2)*T(I2) + P(X=I3)*T(I3).......
答案 2 :(得分:0)
Quicksort提供了计算平均运行时性能的一个有趣的非平凡示例。正如你所看到的,数学可能变得非常复杂,所以不幸的是,我认为没有一个计算平均性能的通用方程式。