算法的复杂度分析

1 算法效率的度量

1.1 算法效率度量的方法

思考:如果两个算法都满足功能性需求,那工程中最关心的其它特性是什么?如何比较评判呢?

注意:性价比(比率)是工程中最关注的算法附件特性!

算法效率度量的方法主要分为两种:事后统计法和事前分析估算法。

1.2 事后统计法

比较不同算法对同一组输入数据的运行处理时间。

缺陷:

  • 为了获得不同算法的运行时间必须编写相应程序。
  • 运行时间严重依赖硬件以及运行时的环境因素。
  • 算法的测试数据的选取相当困难。

事后统计法不容易准确度量算法的效率。

1.3 事前分析估算法

依据统计的方法对算法效率进行估算。

影响算法效率的主要因素:

  1. 算法采用的策略和方法。
  2. 问题的输入规模。
  3. 编译器所产生的代码。
  4. 计算机执行速度。

事前分析估算法通过操作数量度量算法效率。

算法的复杂度分析
算法的复杂度分析
算法的复杂度分析
算法的复杂度分析
算法的复杂度分析
算法的复杂度分析
判断一个算法效率时只需要关注最高阶项就能得出结论。某个算法,随着问题规模n的增大,它会越来越优于另一个算法,或者越来越差于另一个算法。


参考资料:

  1. 数据结构实战开发教程