什么是最坏的情况时间复杂度?

时间:2012-10-02 04:24:00

标签: algorithm

for(int i = 1 ; i < n ; i* = 2)
for(int j = 1 ; j < i ; j* = 2)

任何人都能解释一下这个吗? 我认为这是log(n)*log(i)。这是正确的吗?

1 个答案:

答案 0 :(得分:5)

假设

for (i = 1; i < n; i *= 2)
   for (j = 1; j < i; j *= 2)
      ...stuff...

“stuff”将运行1 + 2 + 3 + ... + log(n)-1次。由于整数1到N之和为N *(N + 1)/ 2,因此最差的运行时间为O(log(n)^ 2)。