算法效率评估
概念
在正确解决问题的前提下,希望找到高效的算法。
包括以下两个维度:
- 时间效率:算法执行所需的时间
- 空间效率:算法占用内存的大小
简而言之,又快又省是目标。
评估方法 1: 实际测算
现有算法A
和算法B
,两者都能正确解决问题。找一台计算机,分别执行,记录时间和内存占用情况,这样可以真实反映算法的效率。但是存在两个较大的局限性:
- 测算环境的干扰:不同的硬件配置\编译器\操作系统等,会对测算结果产生影响。
- 数据规模不完整:不同的数据量表现不同,若测试不同量的数据,耗时耗力。
综上,因为这些局限性,经常使用理论估算来评估算法效率。
评估方法 2: 理论估算
也被称为复杂度分析,complexity analysis.
定义:它描述了随着输入数据大小的增加,算法执行所需时间和空间的增长趋势
重点:
- 划分为时间复杂度和空间复杂度
- 反映了效率与输入数据量的关系
- 关注时间空间增长的快慢