int i=1;while(i<n){int j=n;while(j>1){j=j/2;i=i*2;}}为什么外层的循环的次数是log2n
时间: 2024-06-13 07:06:45 浏览: 43
这段代码中,外层循环的初始值为1,每次循环i的值翻倍,直到i>=n为止。而内层循环的初始值为n,每次循环j的值减半,直到j<=1为止。因此,内层循环的执行次数为log2n,而外层循环的执行次数也是log2n,因为每次循环i的值翻倍,所以外层循环的执行次数与内层循环的执行次数相同,都是log2n。因此,整个代码的时间复杂度为O(log2n)。
阅读全文