使用if语句查找运行时间的期望值

时间:2019-01-27 11:40:40

标签: algorithm complexity-theory

我正在研究一个问题,以查找其中有1步的for循环的平均情况。输入数组中的每个元素的分布为{0 ... i},其中i是元素的索引。

让我失望的是,在for循环中有一个if语句会过早地结束for循环,并且如果数组的值为50,则将执行此“ if语句”。

伪代码看起来像这样:

for i from 0 to n-1:
     do something
     if L[i] == 50:
         do something, and break

和数组的输入是这样分布的:

L[0] = {0}
L[1] = {0, 1}
L[2] = {0, 1, 2}
L[i] = {0, 1, 2, .., i}

允许重复且它们是独立的。


我已经意识到,确实不需要查看数组索引50之前的总和。更进一步,未获得数组值的可能性很明显是i / i + 1,但是这样说,我不知道如何充分利用期望值定理来获得程序的期望运行时间。

我只想给我一些提示,以使我步入正轨。我觉得我真的很想解决这个问题,但到目前为止,谢谢您

0 个答案:

没有答案