持续学习&持续更新中…
什么是算法
算法是用于解决特定问题的一系列的执行步骤。
使用不同算法解决同一个问题,效率可能相差非常大(比如:斐波那契数列.)。
如何评估一个算法的好坏
- 正确性、健壮性、可读性
- 时间复杂度(Time Complexity):估算程序指令的执行次数
- 空间复杂度(Space Complexity):估算程序所需占用的存储空间
根据情况可以适当地进行如下操作:
-
空间换时间
-
时间换空间
大O表示法
一般用大O表示法来描述复杂度,它表示的是数据规模n对应的复杂度。
大O表示法仅仅是一种粗略的分析模型,是一种估算,能帮助我们短时间内了解一个算法的执行效率。
大O的计算方法
忽略常数、系数、低阶
对数阶的细节
多个数据规模复杂度
常见复杂度
常见复杂度的比较
可以借助该网站来对比复杂度:
https://zh.numberempire.com/graphingcalculator.php
- 当数据规模较小时
- 当数据规模较大时
最好最坏复杂度
算法复杂度通常分析的是最坏复杂度,而不能使用最好复杂度。
参考
小码哥李明杰老师课程: 恋上数据结构与算法 第一季.
liuyubobobo老师课程: 算法与数据结构体系课.
本文完,感谢您的关注支持!