【发布时间】:2019-09-26 05:30:27
【问题描述】:
下面函数的时间复杂度是多少? 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;
}
我有 O(n * (n * log n² )) ,但有些事情告诉我我可能错了。
【问题讨论】:
-
绝对不止二次。你需要特别精确吗?
-
请注意
log(n^2)基本上是log(n)。 -
@mangusta 我怀疑两个内部循环的边界错误。修正后,您的评论是正确的。
-
好的,为了避免混淆:如果 OP 暗示
j*=2和h*=2循环更新而不是j/=2和h/=2那么复杂度是O(n * logn * logn)
标签: time-complexity big-o notation