两道时间复杂度习题解答

第一题

for(i = 0; i < N; i++)
        for(j = 0; j < i * i; j++)
            for(k = 0; k < j; k ++)
                sum ++;

请添加图片描述

第二题

int sum = 0;
for(i = 1; i < N; i++)
  // loop A -- O(n)
	for(j = 1; j < i * i; j++)
    //loop B -- (i^2 times per A iteration)
    if(j %i == 0)//if -- O(1)
  /*Here is the fuuny part:
  	每次的j%1==0 都会进行一次下面的循环
  	由于i的倍数只能是i*(1),i*(2),i*(3)...i*(i-1)
  	所以loop C最多进行i-1次
  	故O(n*i^2*i-1) = O(n^4)
  */
      //loop C
			for(k = 0; k < j; k++)
    		sum ++;
		// thus the sum is O(n * n * n *n) = O(n^4)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值