我们有三种评估算法的方法:
最坏的情况
最好的情况
和平均情况
第一个告诉我们查看算法的最坏输入,并评估其性能。
第二个告诉我们为算法寻找最佳输入。
最后一个告诉我们查看算法输入的平均值情况,因此它可能是对算法性能的更准确的度量。
为什么我们不考虑平均大小写算法,所以它比平均大小写更准确,或者至少是它的补充因素。 因为我们看一个输入,所以可能输入的一半在其下方和上方。
中位数给出了平均值可能无法提供的输入所需的权重。
答案 0 :(得分:2)
中位数实际上并没有非常有用的统计属性。
关于平均值的有用一件事是,渐渐地不太可能出现输入错误的情况。
假设算法的平均运行时间在60%的情况下为f(n)
,在40%的情况下为g(n)
,g(n) >> f(n)
。那么您的中位数是Θ(f(n))
,但是您的解决方案通常不适合f(n)
算法的时隙。但是,即使g(n)
的概率是一个很小的常数,平均值仍将Θ(g(n))
提醒您该算法可能会运行很长时间。
期望值的其他有用属性正在求和。如果您有多个任务按顺序执行,那么平均总运行时间将等于平均运行时间的总和。这使得平均值更容易获得和使用。中位数没有类似的属性。