【发布时间】:2012-08-01 06:43:39
【问题描述】:
这个循环的时间复杂度是多少?
j=2
while(j <= n)
{
//body of the loop is Θ(1)
j=j^2
}
【问题讨论】:
标签: while-loop time-complexity
这个循环的时间复杂度是多少?
j=2
while(j <= n)
{
//body of the loop is Θ(1)
j=j^2
}
【问题讨论】:
标签: while-loop time-complexity
你有
j = 2
和每个循环: j = j^2
模式是:
2 = 2^(2^0)
2*2 = 2^(2^1)
4*4 = 2^(2^2)
16*16 = 2^(2^3)
可以看作:
2^(2^k) with k being the number of iteration
因此循环在以下情况下停止:
2^(2^k) >= n
log2(2^(2^k)) >= log2(n)
2^k >= log2(n)
log2(2^k) >= log2(n)
k >= log2(log2(n))
复杂度是log2(log2(n))
【讨论】: