算法(时间复杂度)例题

例子:

void fun(int n){
     int i = 1;
     while (i<n){
      i = i*2;
         }
         }

时间复杂度是研究:数据总量n和执行次数y之间的关系

第一轮:i = 1

第二轮:i = 2

第三轮:i = 4

第四轮:i = 8

第五轮:i = 16

…………

第y轮: i = 2^(y-1) = n

2^y = n ————>y = log2n

答:o(logn)

void fun(int n){
     int i = 0;
     while (i*i*i<n){
         i++;
         }
         }

时间复杂度是研究:数据总量n和执行次数y之间的关系

第一轮:i = 0

第二轮:i = 1

第三轮:i = 2

第四轮:i = 3

第五轮:i = 4

…………

第y轮: i = (y-1)

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

        y^3 = n 

       y = n^1/3

答:O(³√n)

x = 2;
while(x<n/2){
x = x * 2;
}

第一轮:x = 2

第二轮:x = 4

第三轮:x = 8

第四轮:x = 16

第五轮:x = 32

…………

第y轮: x = 2^y

2^y = n——>y = log₂n

答:O(logn)

    x = 0;
while (n>(x+1)*(x+1)){
    x = x + 1;
        }

第一轮:x = 0

第二轮:x = 1

第三轮:x = 2

第四轮:x = 3

第五轮:x = 4

…………

第y轮: x = y - 1

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

答:O(√n)

i=1,k = 0;
while(i<n-1){
 k = k+10*i;
    i++;
    }

第一轮:i = 1

第二轮:i = 2

第三轮:i = 3

第四轮:i = 4

第五轮:i = 5

…………

第y轮: i = y

y = n - 1

答:O(n)

  • 30
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值