P(x,y,z){
print x
if(y!=x) print y
if(z!=x && z!=y) print z
}
这里的平凡算法,值x
, y
,z
是从 中随机选择{1,...r}
的r >= 1
。我正在尝试确定该算法的平均案例复杂度,并根据打印语句的数量来测量复杂度。
这里最好的情况是 T(n) = 1 或 O(1),x=y=z
此时的概率为 1/3。当概率为 2/3 时,
这里最坏的情况仍然是 T(n) = 3 或仍然是 O(1) 。x!=y!=z
但是当涉及到从数学上推导平均情况时:
样本空间是 n 个可能的输入,样本空间的概率是 1/n 机会 那么,我如何计算平均情况复杂度?(这是我画一个空白的地方..)