一篇文章读懂时间复杂度和空间复杂度

本文详细介绍了数据结构中的时间复杂度和空间复杂度,阐述了它们在评估算法性能中的作用。文章讲解了如何计算时间复杂度,通过实例展示了大O渐进表示法,并讨论了在不同情况下如何考虑时间复杂度。同时,文章还提及了空间复杂度的计算方法,总结了在面试和在线判题中考虑复杂度的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据结构——时间复杂度和空间复杂度

前言

数据结构和算法是互相融合的,数据结构是数据的储存方式,算法是数据处理的方法,这两个要相互配合,类似唇齿相依

动态规划是一类算法的总称

时间复杂度和空间复杂度

大概意思就是程序在运行时所花费的时间和占用的空间这样的情况,一般是评定程序性能好坏的作用

现阶段比较关系时间复杂度的大小,因为内存发展的比较快,除了嵌入式领域,没人关心空间大小了(摩尔定律)

摩尔定律,是因特尔的创始人之一,说在硬件领域里面发展的速度很快,内存的大小也发展的很快,现阶段几乎不用考虑占用空间的大小

时间复杂度

对算法而言,时间复杂度指的是程序运行的大概次数,不是运行时间的大小*(因为不同的计算机环境运行的速度都不一样)*

时间复杂度的计算方式

大O渐进法 ————类似数学里面的函数表达式

// 请计算一下Func1基本操作执行了多少次?
void Func1(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;
	}
	printf("%d\n", count);
}

在这个例题里面,对于第一个循环来说,循环了N*N次也就是N^2

对于第二个循环就是2*N,2N

第三个就是10次,是常数

用一个函数表达式就是
F ( N ) = N 2 + 2 ∗ N + 10 ; F(N)=N^2+2*N+10; F(N)=N2+2N+10;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

兆。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值