如何在输入大小未知时估计运行时

时间:2016-09-12 16:15:14

标签: algorithm

我正在学习如何使用本书自己分析算法(前5章):Introduction of Algorithms。假设我有以下简单的算法(我做了):

for i <- 0 to 100
  for j <- 1 to 2000
     if (i*10 + j*20 = n)
         c <- c+1

现在,如果我想估算此算法对特定输入大小的运行时间,请说n= 500,我会说:

最坏情况下的运行时间为T(n) = 100*2000*500 = 10 * 10^7。但是,当我想概括任何输入大小,即n时,我不知道如何做到这一点!那么,有人可以启发我吗?

谢谢

1 个答案:

答案 0 :(得分:1)

您当前的运行时间是错误的。由于您始终遍历所有ij值,因此总共需要100*2000次迭代。这与您的n值无关。但是,如果您认为未知数分别是最大ij值,分别由IJ表示,则可以说您的算法的运行时间为{{1} }。您已经走上了正确的轨道,只需将常量替换为变量。