目录
- 0.铺垫
- 1.时间复杂度 -- 衡量算法的运行快慢
- 1.是什么?
- 2.大O的渐进表示法
- 2.空间复杂度 - 衡量算法所需要的额外空间
- 3.常见复杂度对比
0.铺垫
- 时间是累计的
- 空间是不累计的,可以重复利用
1.时间复杂度 – 衡量算法的运行快慢
1.是什么?
- 算法的时间复杂度是一个函数(数学意义上)
- 算法中的基本操作的执行次数(不一定是一条语句,可能是多条语句,但肯定是常数条),为算法的时间复杂度
2.大O的渐进表示法
- 大概估算,方便比较 – 估算它属于哪个量级的算法
- 推导大O阶方法:
- 用常数1取代运行时间中的所有加法常数
- 在修改后的运行次数函数中,只保留最高阶项
- 如果最高阶项存在且不是1,则去除与这个项目相乘的常数。得到的结果就是大O阶
2.空间复杂度 - 衡量算法所需要的额外空间
- 对一个算法在运行过程中额外临时占用存储空间大小的量度
- 空间复杂度算的是变量的个数