第二章为“算法分析”,该部分主要介绍了计算机科学中目前用于测量一个算法的运行复杂的具体数学方法;同时给出了多个问题示例,对每个问题分别采用不同复杂度的算法,可以直观地了解到在解决实际问题时,不仅仅需要能够得出结果的算法,更应该给出算法复杂度更低的算法的意义
- 数学工具:“大O”表示法,用于估计一个程序运行所需要的时间
- 问题示例:采用更优的算法,使得解决问题所需要的时间缩短几个量级
- 递归函数:举例说明不良的递归导致算法所复杂度极高
数学基础
- 定义1:若 ∃c>0,n0>0 使得当 N≥n0 时 T(N)≤cf(N) ,则记为 T(N)=O(f(N))
- 定义2:若 ∃c>0,n0>0 使得当 N≥n0 时 T(N)≥cf(N) ,则记为 T(N)=Ω(f(N))
- 定义3: T(N)=