针对一个问题可以有多种的算法方法来解决问题,当然我们最喜欢的还是简单的、高效的方法。如何衡量算法的好坏,是学习算法的重要基础。
- 最初,用所需要的计算时间来衡量一个算法的好坏
- 但不同的机器相互之间无法比较
- 需要用独立于具体计算机的客观衡量标准
1.问题的规模
2.基本运算
3.算法的计算量函数
问题的规模
输入数据量的测度(一般是n来表示)
基本运算
解决给定问题时占支配地位的运算(一般一种、偶尔两种)
计算量函数
用问题规模的某个函数来表示算法的基本 运算量,这个表示基本运算量的函数称为算 法的时间复杂性(度)。时间复杂度用用T(n)(或T(n,m)等)来表示。
重点概念:
渐进时间复杂度
当问题的规模趋于极限情形时的时间复杂度的表示
3种记号
1. O(f(n))表示算法时间复杂度的上界
定义为:若存在c > 0,和正整数n0≥1,使得当n≥n0时,总有 T(n)≤c*f(n) 。
2. Ω(f(n)) 表示算法时间复杂度的下界
定义为:若存在c > 0,和正整数n0≥1,使得当n≥n0时,存在无穷多个n