algorithm - 以下代码片段的 O(n) 运行时时间复杂度是多少?

标签 algorithm time-complexity big-o code-analysis

我查看了嵌套的相互依赖的循环,但我无法弄清楚以下代码的时间复杂度:

void check(int n)
{ 
    int i,j,k;
    for(i=0;i<=n/2;i++)
    {
        for(j=0;j<=i*i;j++)
        {
            for(k=0;k<j*j;k++)
            {    
                printf("HELLO");    //any O(1) task
            }
        }
    }
}

最佳答案

sum

sum

为了计算时间复杂度,我们可以忽略低阶项。 'i'的最高次方是6所以

sum

我们知道:

sum

因此

sum

关于algorithm - 以下代码片段的 O(n) 运行时时间复杂度是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44838627/

相关文章:

c++ - 如何在数组中找到非耦合整数?

algorithm - 寻找离散对数的时间复杂度(蛮力)

c++ - 为什么动态数组必须以几何方式增加其容量以获得 O(1) 分摊 push_back 时间复杂度?

C++11:std::vector::shrink_to_fit 复杂度

python - 这个函数的大O是怎样的O(n^3)?

string - 来自字符串数组的有效二叉树

algorithm - 更简单的 KMP 前缀表构建。这个实现会有什么问题?

algorithm - 以编程方式检测两条线的收敛和发散

big-o - 使用 big-o 进行时间复杂度分析

java - 大 O 符号和带循环的递归