首先了解两个概念
时间复杂度:估算程序执行的次数
空间复杂度:估算程序所占用的存储空间
- 一般用大O来描述复杂度,它表示是数据规模N对应的复杂度
- 忽略常数,系数,低阶
- 9 >> O(1)
- 2n+3>>O(n)
- 4n3+3n2+22n+100>>O(n^3)
根据规则 忽略常数,系数,低阶
8 = 2^3 = log2(8) 用logn表示
16 = 2^4 = log2(16) 用logn表示
统一表示为log2(n) 用大O表示O(logn)
1+2*log2(n)+log2(n) (1+3n) = 1+3log2(n)+2nlog2(n)=O(logn+nlogn)
=O(nlogn)
注意:大O表示法紧紧是一种粗略的分析模型,是一种估算,能帮助我们短时间内了解一个算法的执行效率
时间复杂度:大O表示渐进的时间复杂度
常见的的时间复杂度
也可以借助函数生成工具对比复杂度的大小
https://zh.numberempire.com/graphingcalculator.php
时间复杂度对比
数据规模较小时对比
数据规模比较大时对比
X 数据规模
Y 执行的时间复杂度