Time complexity 是此函数的时间复杂度O(n*(n*logn²;)
下面函数的时间复杂度是多少?n>0Time 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
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