【发布时间】:2012-10-04 02:15:45
【问题描述】:
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 的增量不规则。我如何计算这个特定算法的步数以研究它的效率?
【问题讨论】:
-
在第二种算法中,哪些输出可以改变大小?
X和A?X和算法有什么关系?
标签: algorithm performance big-theta