任何人都可以建议以下代码的时间复杂度

时间:2020-04-07 18:31:42

标签: c++ time-complexity

根据我的说法,时间复杂度应为O(nlogn),因为外循环工作直到n / 2 ^ k = 1且内循环工作n次。谁能告诉我我是否正确。

 while(n){ 
  j=n; 
  while(j>1){ 
    j-=1; 
  } 
  n/=2; 
} 

1 个答案:

答案 0 :(得分:8)

内部循环执行 reg value 0 2 for $20 10.0 1 4 for $24 6.0 2 2 for $30 15.0 3 Get $10 Cash 14.0 4 3 for $30 10.0 次迭代,外部每次迭代将n除以2,因此内部循环共有n个迭代,时间复杂度为n + n/2 + n/4 + ... = 2n,而不是O(n)