本笔记整理为方便自行复习,若有他人需求亦可参考。
1.算法基础
(1)算法定义:由有限条指令构成,规定了解决特定问题的一系列操作。
(2)程序定义:程序是算法用某种程序设计语言的具体实现。
(3)区别:程序可以不满足算法的性质:有限性。
(4)算法的评价准则:正确性、时间复杂性、空间复杂性、可读性、健壮性。
2.时间复杂度及渐进表示法
(1)基本运算(关键运算)
算法中起主要作用且耗时最多的操作。
例:矩阵运算中的*与+;
排序算法中的比较;
数组插入/删除操作的赋值(移动)。
(2)时间复杂度
算法中基本运算的次数
问题规模的函数
渐进表示方法:随着规模的增长,算法执行时间T(n)的变化趋势。
O表示法、Ω表示法、Θ表示法。
O:上限
Ω:下限
Θ:上限和下限
例:
T(n)=3logn+loglogn,g(n)=logn
存在C=4,n0