Time complexity 这个嵌套循环的大O是什么? intz=1; 对于(inti=0;i*i

Time complexity 这个嵌套循环的大O是什么? intz=1; 对于(inti=0;i*i,time-complexity,big-o,complexity-theory,Time Complexity,Big O,Complexity Theory,外环:i从1到sqrt(n); 内环:j,z上升到3^(sqrt(n)) “某些代码”将运行1+3+3^2+…+3^(sqrt(n))次 2(3^(sqrt(n)+1)-1您可以通过以下方式使用西格玛表示法来处理问题: 3^sqrt(n)是外循环最后一次迭代的执行时间,而不是整体执行。欢迎您为我提供的系列总和提供更准确的答案。它绝对不是O(3^n)。但是,不,您的复杂性是正确的,几何级数的总和是b1*(q^n-1)/(q-1),q=3仍然是O(3^sqrt(n)),很抱歉给您带来不便我已经充实了

外环:i从1到sqrt(n); 内环:j,z上升到3^(sqrt(n))

“某些代码”将运行1+3+3^2+…+3^(sqrt(n))次


2(3^(sqrt(n)+1)-1您可以通过以下方式使用西格玛表示法来处理问题:


3^sqrt(n)
是外循环最后一次迭代的执行时间,而不是整体执行。欢迎您为我提供的系列总和提供更准确的答案。它绝对不是O(3^n)。但是,不,您的复杂性是正确的,几何级数的总和是
b1*(q^n-1)/(q-1),q=3
仍然是O(3^sqrt(n)),很抱歉给您带来不便我已经充实了工作,懒得打校样
int z=1; 
for(int i=0;i*i<n;i++){
  z*=3;
  for(int j=0;j<z;j++){
   // Some code
  }
}
let sum = 1 + 3 + 3^2 + ... + 3^(sqrt(n))
sum - 3*sum = 1 - 3(sqrt(n) + 1)
sum = 1 - 3(sqrt(n) + 1) / (1-3) = 2( 3^(sqrt(n)+1) - 1 )