数据结构与算法 : 算法与时间复杂度
算法的五大特性 :
1. 输入, 0 个或多个
2. 输入 1 个或多个
3. 有穷性
4. 确定性
5. 可行性
如果一个算法执行效率(步骤) 标记成 T(n) = n^3 * 2 ,那么这个2 可以看作一个常数 k ,就可以写成 T(n) = n^3 * k
可以看出,如果改变常数k的值,并不会影响 T(n) 这个函数在坐标轴的走势,所以可以忽略掉这个常数,把它表示成 g(n) = n^3
那么 g(n) = n^3 就是 T(n) = n^3 * k 的 渐进函数 可以记作 T(n) = O(g(n)) 那么这个式子 就是这个算法的时间复杂度
算法完成最少需要多少基本操作,叫最优时间复杂度
算法完成平均需要多少基本操作,叫平均时间复杂度
算法完成最多需要多少基本操作,叫最坏时间复杂度
平时所说的时间复杂度,即最坏时间复杂度
时间复杂度基本计算规则:
1. 基本操作,基本语句,时间复杂度为 O(1)
2. 顺序结构, 时间复杂度按 加法 计算
3. 循环结构, 时间复杂度按 乘法 计算
4. 分支结构, 取最大值 (即分支里面时间复杂度最坏的那条)
5. 判断算法效率时,往往只需要关注操作数量的最高次项
6. 一般分析时所称的时间复杂度都是最坏时间复杂度