算法的时间复杂度

时间复杂度通过计算基本操作次数衡量算法效率,而非实际运行时间。通常关注最坏情况下的运行时间,用O记号法表示,如O(1), O(logN), O(N), O(nlogn), O(n^2)等。空间复杂度则关注算法执行所需存储空间,同样以O(n)表示。" 120677153,11387667,Python pytest 单元测试实战与Allure报告,"['Python开发', '测试工具', 'pytest框架', 'allure报告', '数据读取']
摘要由CSDN通过智能技术生成

时间复杂度

时间复杂度实际就是一个函数(这里指的是数学里的函数),该函数计算的是执行基本操作的次数。

为什么时间复杂度不是计算执行的实践而是次数?

答:因为我们无法计算执行的时间,比如不同的机器不同的配置,同一个算法的运行时间都是不一样的。所以我们只能在这里执行的次数来表示算法的性能。

void test(int n)
{
	int count = 0;
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			count++;
		}
	}
	for (int k = 0; k < 2 * n; k++)
	{
		count++;
	}
	int m = 10;
	while (m--)
	{
		count++;
	}
}

语句执行次数:f(n)=n^2+2*n+10

算法分析的分类

(1)最坏情况:任意输入规模的最大运行次数。(上界)

(2)平均情况:任意输入规模的期望运行次数。

(3)最好情况:任意输入规模的最小运行次数,通常最好情况不会出现。(下界)

在实际中,我们通常考量的是算法的最坏运行情况,理由:

  • 一个算法的最坏情况的运行时间是在任意输入下的运行时间的上界
  • 最坏情况出现的较为频繁
  • 平均情况和最坏情况一样差
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值