如何分析该算法的效率

时间:2012-10-04 02:15:46

标签: algorithm performance big-theta

FUNCTION SEEK(A,X)
1. FOUND = FALSE
2. K = 1
3. WHILE (NOT FOUND) AND (K < N)
   a.  IF (A[K] = X THEN
       1.  FOUND = TRUE
   b.  ELSE
       1.  K = K + 1
4. RETURN

分析这个算法(伪代码),我可以计算完成所需的步骤数,并用θ表示法分析其效率,Θ(n),线性算法。行。

以下代码依赖于循环内部的公式来完成:

1.  X = 1
2.  B = 1
3.  UNTIL (B > 100)
    a.  B = 2A - 2
    b.  A = A + 3

显然它并不像第一个那么简单,我不能说循环重复100次,因为循环内A和B的不规则增量。为了研究它的效率,我如何计算这个特定算法的步数?

1 个答案:

答案 0 :(得分:2)

B取决于A. A单调增加。 因此,循环以线性时间运行,具体取决于A的初始值。 一个小代数会告诉你A的什么值会阻止循环。