时间这个嵌套循环的复杂性

时间:2017-02-08 19:12:19

标签: time time-complexity big-o

这段代码的时间复杂度是多少? 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++; 
                      }}}

2 个答案:

答案 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)

相关问题