Time complexity 是此函数的时间复杂度O(n*(n*logn²;)

Time complexity 是此函数的时间复杂度O(n*(n*logn²;),time-complexity,big-o,notation,Time Complexity,Big O,Notation,下面函数的时间复杂度是多少?n>0 Function fun(n){ Let count = 0; For( I = 0; I < n; I++){ For(j = 0; j < n; j /= 2) { For(h = 0; h < n; h /= 2) { Count = count + 1; } } } Return co

下面函数的时间复杂度是多少?n>0

Function fun(n){
    Let count = 0;

    For( I = 0; I < n; I++){

        For(j = 0; j < n; j /= 2) {

            For(h = 0; h < n; h /= 2) {

                Count = count + 1;
            }
        }
    }
    Return count;
}
功能乐趣(n){
让计数=0;
对于(I=0;I

我有O(n*(n*logn²)),但有些东西告诉我我可能错了。

上面的循环是一个无限循环。除非正确更新问题陈述,否则无法确定此问题的时间复杂度

Function fun(n){
    Let count = 0;

    For( I = 0; I < n; I++){
        // will run infinitely even if you change j /= 2 to j *= 2, because initial value is 0
        For(j = 0; j < n; j /= 2) {
            // will run infinitely even if you change h /= 2 to h *= 2, because initial value is 0
            For(h = 0; h < n; h /= 2) {

                Count = count + 1;
            }
        }
    }
    Return count;
}
功能乐趣(n){
让计数=0;
对于(I=0;I
它绝对不仅仅是二次函数。你需要特别精确吗?请注意,
log(n^2)
基本上是
log(n)
@mangusta我怀疑这两个内部循环的界限是错误的。一旦修复,您的评论是正确的。好的,为了避免混淆:如果OP意味着
j*=2
h*=2
循环更新,而不是
j/=2
h/=2
,那么复杂度是
O(n*logn*logn)
为什么这是一个无限循环?@gue,因为零除以任何值都会得到零。因此,根据第二个循环,当j的初始值为零时,它被二除,结果为零。因此,你的条件是正确的。我的错误。(对不起,如果你编辑,我只能撤消我的否决票。)哦,天啊。我的错误。我非常专注于其他方面,但对于其他人来说,大o函数的例子并不多,每次迭代都会被一个数字除掉,因为如果n是100,j