This commit is contained in:
krahets
2023-08-19 22:07:27 +08:00
parent 71c7786f51
commit 2e27ad1680
99 changed files with 283 additions and 283 deletions
@@ -2,7 +2,7 @@
comments: true
---
# 2.1.   算法效率评估
# 2.1   算法效率评估
在算法设计中,我们先后追求以下两个层面的目标:
@@ -18,7 +18,7 @@ comments: true
效率评估方法主要分为两种:实际测试和理论估算。
## 2.1.1.   实际测试
## 2.1.1   实际测试
假设我们现在有算法 `A` 和算法 `B` ,它们都能解决同一问题,现在需要对比这两个算法的效率。最直接的方法是找一台计算机,运行这两个算法,并监控记录它们的运行时间和内存占用情况。这种评估方式能够反映真实情况,但也存在较大局限性。
@@ -26,7 +26,7 @@ comments: true
**展开完整测试非常耗费资源**。随着输入数据量的变化,算法会表现出不同的效率。例如,在输入数据量较小时,算法 `A` 的运行时间比算法 `B` 更少;而输入数据量较大时,测试结果可能恰恰相反。因此,为了得到有说服力的结论,我们需要测试各种规模的输入数据,而这样需要耗费大量的计算资源。
## 2.1.2.   理论估算
## 2.1.2   理论估算
由于实际测试具有较大的局限性,我们可以考虑仅通过一些计算来评估算法的效率。这种估算方法被称为「渐近复杂度分析 Asymptotic Complexity Analysis」,简称为「复杂度分析」。
@@ -40,7 +40,7 @@ comments: true
如果你对复杂度分析的概念仍感到困惑,无需担心,我们会在后续章节详细介绍。
## 2.1.3.   复杂度的重要性
## 2.1.3   复杂度的重要性
复杂度分析为我们提供了一把评估算法效率的“标尺”,帮助我们衡量了执行某个算法所需的时间和空间资源,并使我们能够对比不同算法之间的效率。