算法效率的度量通过时间复杂度和空间复杂度来衡量。
一般考察时间复杂度的内容偏多,空间复杂度了解就行。
1.时间复杂度
语句的频度是指一个语句在算法中被重复执行的次数。
时间复杂度是指执行算法所需要的计算工作量;
时间复杂度主要是找到各个语句执行的次数,再找到相同的数量级。
T(n)=所有语句的频度之和,它是算法问题规模的n的函数,时间复杂度主要分析T(n)的数量级。
算法中基本运算[最深层次循环的语句]的频度与T(n)同数量级。
时间复杂度一般分为以下三种:
- 最坏时间复杂度:顾名思义,在最坏情况下的算法时间复杂度
- 平均时间复杂度:指所有可能输入在等概率的情况下,算法期望运行的时间
- 最好时间复杂度:指在最好情况下,算法的时间复杂度
一般总是考虑在最坏情况下的时间复杂度,目的是保证算法的运行时间不会比它更长。
注:下面两条规则非常重要