学了2个月数据结构与算法,我被捅了268刀( 二 )


那平均时间复杂度就是两次情况的平均值,假定是(n+1)/2 => O(n)
但是我们一般讨论的时间复杂度都是指:最坏时间复杂度
原因如下:
最坏时间复杂度是在任意输入下的运行时间界限,保证算法时间不会比其更长了
某些算法下,最坏的情况会频繁出现
大体上,平均和最坏一样糟糕
算法的空间性能分析 空间复杂度
指的是算法在计算机运行时所需的存储空间大小的量度
其包括但是不限于:
指令常量、变量等所占的存储空间
输入数据所占的存储空间
辅助空间(自定义出来的存储空间,空间复杂度主要是计算这个)
示例1:
for(i=0;i
示例2:
for(i=0;i
一个好的算法
一个好的算法必然是运行时间短,占用存储空间小
时间复杂度和空间复杂度两者相互辩证
一方占有,总要另一方做出牺牲
示例1:
long first = 1,second = 1,ret = 0;for(int i=3;i
示例2:
long a[n];// a[]是辅助空间,大于与n有关,所以空间复杂度为O(n)a[1] = a[2] = 1;for(int i = 3;i
先更新到这儿吧,后面再补充 。
要是等不及了,数据结构与算法的完整学习资料,你们想要就拿去吧,仅供个人学习,祝你学习进步:
数据结构与算法完整版学习资料
希望以上内容对你有所帮助 。