时间复杂度

目录

算法

1.算法效率

时间复杂度

1.时间复杂度的概念

2.大O的渐进表示法

3.常见复杂度对比


算法

1.算法效率

评价一个算法的好坏就是取决于它的效率 

算法效率又取决于该算法的时间复杂度空间复杂度

时间复杂度

1.时间复杂度的概念

算法中基本操作的执行次数为该算法的时间复杂度

下面我们举个例子 计算fun1函数的时间复杂度

void fun1(int n)
{
	int i = 0;
	int count = 0;
	for (i = 0; i < n; i++)
	{
		for (i = 0; i < n; i++)
		{
			count++;
		}
	}
	for (i = 0; i < 2 * n; i++)
	{
		count++;
	}
	for (i = 0; i < 100; i++)
	{
		count++;
	}
}

先求出算法运行的大概次数

F(N)=n^2+2*n+100;

当n=10时           F(N)=130

当n=100时         F(N)=10210        

当n=100时         F(N)=1002010

 其实在实际中我们计算时间复杂度时并不是计算它准确的执行次数,而只需要计算大概执行次数即可,所以我们使用大O的渐进表示法

2.大O的渐进表示法

O 阶方法:
1 、用常数 1 取代运行时间中的所有加法常数
2 、在修改后的运行次数函数中,只保留最高阶项
3 、如果最高阶项存在且不是 1 ,则去除这个项的系数。得到的结果就是大 O 阶。

F(N)=n^2+2*n+100

用大O的渐进表示法即可求出时间复杂度为O(N^2)

注:在实际中一般关注的是算法的最坏情况

3.常见复杂度对比

常见类型                             时间复杂度

F(N)=15376                        0(1)                

F(N)=3n+1                          0(n)      

F(N)=3n^2+1                      0(n^2) 

F(N)=3longn+4                   0(logn) 

F(N)=2nlongn+n^2             0(nlogn) 

F(N)=4n^3+n^2=100n        0(n^3) 

F(N)=2^n+n                        0(2^n) 

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值