algorithm - 这个嵌套循环相互依赖的程序的大 O 是什么?

标签 algorithm big-o

无法弄清楚这段代码的大 O 是什么。外层循环是log(n),但是依赖于外层循环的内层循环呢?

for (int i = 1; i < A.length; i = i * 3) {
    for (int j = i; j < A.length; j++) {
        // Simple computation
    }
}

非常感谢任何帮助:)

最佳答案

如果A.Length == n,则内层循环每次在n-i中运行。因此,程序的总复杂度为 sum(n - i) for i = 1, 3, 9, ..., n = 3^log_3(n) .由于i的个数是log_3(n),复杂度是T(n) = n * log_3(n) - (3^(log_3(n )+1)-1) = n * log_3(n) - 3(n-1) = O(nlog(n))

关于algorithm - 这个嵌套循环相互依赖的程序的大 O 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54349232/

相关文章:

java - 大O符号作业--代码片段算法分析?

arrays - filter(_ :). first 和 first(where :)?

javascript - JavaScript 有 indexOf(lambda) 或类似的吗?

java - Java中字符串重复追加的大O

java - 从字符串到整数的映射——各种方法的性能

python - 是否有 numpy 库的大 O 复杂性列表?

algorithm - 日志梳理算法

python - 快速python算法,从子集总和等于给定比率的数字列表中找到所有可能的分区

algorithm - 从具有多个参数的算法中查找封闭形式

algorithm - 射线-三角形相交