1. 算法分析的原则
机器的运算速度影响算法的运行时间
因此,分析算法的运行时间应独立于机器,统一机器性能后,算法运行时间依赖于问题输入规模与实例
相同输入规模,实例影响运行
- 插入排序最好情况:数组升序
- 插入排序最坏情况:数组降序
输入情况 | 情况说明 |
---|---|
最好情况 | 不常出现,不具普遍性 |
最坏情况 | 确定上界,更具一般性 |
一般情况 | 情况复杂,分析难度大 |
常用最坏情况分析算法运行时间
算法运行时间仅依赖于问题输入规模𝒏 ,表示为𝑻 (𝒏 )
2.算法分析的工具
问题:能否简洁地衡量算法运行时间?
在𝒏 充分大时,两者相差不大
原因:两函数的最高阶项相同
渐近分析:忽略𝑻 (𝒏 )的系数与低阶项,仅关注高阶项,用记号𝚯 表示
渐近记号 | 名称 |
---|---|
𝑻 (n)= 𝚯 (𝒈 (𝒏 )) | 渐近紧确界 |
𝑻 (n)= 𝑶 (𝒈 (𝒏 )) | 渐近上界 |
𝑻 (n) = 𝛀 (𝒈 (𝒏 )) | 渐近下界 |
输入情况 | 情况说明 |
---|---|
最好情况 | 不常出现,不具普遍性 |
最坏情况 | 确定上界,更具一般性 |
小结:
算法分析的原则:
- 统一机器性能
- 分析最坏情况
算法分析的工具:
- 采用渐近分析