时间复杂度

本文详细介绍了单重、双重和多重循环在代码中的示例,以及它们对应的时间复杂度分析,强调了掌握时间复杂度计算在解决问题中的重要性。
摘要由CSDN通过智能技术生成

#核心主要分为不同的循环循环次数
##一重循环
例如

while(n>(x+1)*(x+1))
x=x+1;

这个时候时间复杂度就是O(sqrt(n))

while(i<=n)
i=i*2;

时间复杂度O(log2n)

##二重循环
1.列出外层循环(i的变化)
2.列出内层循环执行次数
3.求和.
例一

int m=0;i,j;
for(i=1;i<=n;i++)
	ffor(jj=1;j<2*i;++)
		m++;

i从一到n,内层循环执行2,4 ,6·······等差数列
即n(2+2n)/2=n(n+1)即O(N*N).
例二

for(int i=0;i<n;i++)
	for(int j=0;<m;j++)
	a[i][j]=0;

i是从0到n,j是从0到m,
所以每个n都有m种可能即时间复杂度O(m*n)

##多重循环
1.可以理解为求三维体积
2.也可以理解为列式求和

for(int i=;i<=n;i++)
	for(int j=0;j<=i;j++)
		for(int k=0;k<=j;k++)
每个最大都是n;
可以理解为求立方体体积
即三个数相乘
即O(n*n*n),n的三次方,
列式的话就是直白的数学计算
通过以上例子其实可以举一反三。
掌握时间复杂度计算,对于做题是非常重要的额所以学着很有必要
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值