java - 算法运行时间分析

标签 java c++ algorithm runtime

big-O 运行时间是多少?我主要对 while 循环运行时间感到困惑。我知道两个 for 循环的运行时间都是 O(n)。

cin >> n >> min >> max;

for(int i = min; i < n; i++) {

     for(int j = 1; j < max; j++) {

        total = 1;

        while(total < n) {

             total = total *2;

        }

    }
}

最佳答案

targetwhile 循环中的进程是:

1 2 4 8 ... 2^P

您需要 log(2, n) 个步骤——即 log of n in base 2。该循环是 O(log n)

关于java - 算法运行时间分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33295092/

相关文章:

java - 了解 getInputStream 和 getOutputStream

c++ - C++ 中嵌套 for 循环的替代方案是什么?

algorithm - 字符串搜索算法

arrays - 查找数组中出现奇数次的所有元素

algorithm - 检查 A 是否是二叉树 B 的一部分

Java 多维字符串给出奇怪的输出

java - GCLOUD CONFIG Google 标准环境

java - 如何将 Guacamole 记录文件与历史连接记录关联

c++ - 是否有可能以这样一种方式实现一个类,即可以像 POD 一样对其进行值初始化

c++ - 如何为 std::variant 赋值?