我们为什么不通过中值情况的复杂性来评估算法

时间:2018-10-20 07:30:56

标签: algorithm time-complexity complexity-theory

我们有三种评估算法的方法:
最坏的情况
最好的情况
和平均情况

第一个告诉我们查看算法的最坏输入,并评估其性能。

第二个告诉我们为算法寻找最佳输入。

最后一个告诉我们查看算法输入的平均值情况,因此它可能是对算法性能的更准确的度量。

为什么我们不考虑平均大小写算法,所以它比平均大小写更准确,或者至少是它的补充因素。 因为我们看一个输入,所以可能输入的一半在其下方和上方。

中位数给出了平均值可能无法提供的输入所需的权重。

1 个答案:

答案 0 :(得分:2)

中位数实际上并没有非常有用的统计属性。

关于平均值的有用一件事是,渐渐地不太可能出现输入错误的情况。

假设算法的平均运行时间在60%的情况下为f(n),在40%的情况下为g(n)g(n) >> f(n)。那么您的中位数是Θ(f(n)),但是您的解决方案通常不适合f(n)算法的时隙。但是,即使g(n)的概率是一个很小的常数,平均值仍将Θ(g(n))提醒您该算法可能会运行很长时间。

期望值的其他有用属性正在求和。如果您有多个任务按顺序执行,那么平均总运行时间将等于平均运行时间的总和。这使得平均值更容易获得和使用。中位数没有类似的属性。