这段代码的时间复杂度是多少? nlgn OR nlgn ^ 2
for (int i = 1; i <= n ; i*=2 ) {
for (int j = 1; j <= n ; j*=2 ) {
for (int k = 0; k <= j ; k++) {
x++;
}}}
答案 0 :(得分:0)
首先记录时间(exponential growth
)
第二个for循环也需要log n time(exponential growth
)
第三个需要n次(linear growth
)
所以整体时间=乘以所有,我们得到
log n * log n * n
所以时间复杂度
O(n(logn)^ 2)
答案 1 :(得分:0)
这个时间复杂度将是n *((logn)^ 2),因为第一个循环将运行logn次,第二个循环也将运行logn次,第三个循环将运行n次,因为它将是和gp 1 + 2 + 4 + 8。所以答案是n *(logn)*(logn)