algorithm - 如何分析这个算法的效率

标签 algorithm performance big-o

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

分析这个算法(伪代码),我可以计算它完成所需的步骤数,并用线性算法 theta 符号 Θ(n) 分析它的效率。好的。

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

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

显然不像第一个那么简单,而且我不能说循环重复100次,因为循环内部A和B的不规则递增。如何计算此特定算法的步骤数以研究其效率?

最佳答案

B 依赖于 A。 A 单调递增。 因此,循环以线性时间运行,具体取决于 A 的初始值。 一点点代数就会告诉你什么 A 值停止循环。

关于algorithm - 如何分析这个算法的效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12719445/

相关文章:

c++ - 是否有 c++ 源代码/lib 来解决带有矩形 bin(不是正方形)和旋转的 2D Bin Packing?

c++ - 优化 pow 算法

c# - 在递归方法中使用 LinqToSql 对性能非常不利

algorithm - 已知子任务复杂度的算法复杂度

algorithm - 球体上密度最高的位置

python - Python 2.7 中的字符串替换

mysql - InnoDB Small 更新很慢,性能问题

android - 检查文件是否存在于文件夹中或 Android 中的 sdcard 中

data-structures - 二叉树到二叉搜索树 (BST)

math - 求解递推关系 T(n) = √n T(√n) + n