当前位置:   article > 正文

时间复杂度例题_求出下列算法的时间复杂度() int y=0; while((y+1)*(y-1)<=n) { y+

求出下列算法的时间复杂度() int y=0; while((y+1)*(y-1)<=n) { y++; }

1.

  1. void fun(int n){
  2. int i = 0;
  3. while(i*i*i<n){
  4. i++;
  5. }
  6. }

第一轮:i=0;第二轮:i=1;第三轮:i=3;第四轮:i=3;

第y轮:i=(y-1)

(y-1)*(y-1)*(y-1)=n

     y^3=n

     y=³√n  或n^⅓

        O(³√n)

2.

  1. x=2
  2. while(x<n/2){
  3. x=x*2;
  4. }

第一轮:x=2;第二轮:x=4;第三轮:x=8;第四轮:x=16;

第y轮:x=2^y

2^y=n ------>y=log₂n ----->O(log₂n)

3.

  1. x=0;
  2. while(n>(x+1)*(x+1)){
  3. x=x+1;
  4. }

第一轮:x=0;第二轮:x=1;第三轮:x=2;第四轮:x=3;

第y轮:x=y-1

y*y=n ----->y^2=n ----->y=√n ----->O(√n)

4.

  1. i=1;k=0;
  2. while(i<n-1){
  3. k=k+10*i;
  4. i++;
  5. }

第一轮:i=1;第二轮:i=2;第三轮:i=3;第四轮:i=4;

第y轮:i=y;

y=n-1 ----->o(n)

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号