This commit is contained in:
krahets
2023-04-08 04:08:33 +08:00
parent 54b72a3ac9
commit c6da3ca087
7 changed files with 44 additions and 48 deletions

View File

@ -1795,7 +1795,7 @@
<h1 id="21">2.1. &nbsp; 算法效率评估<a class="headerlink" href="#21" title="Permanent link">&para;</a></h1>
<h2 id="211">2.1.1. &nbsp; 算法评价维度<a class="headerlink" href="#211" title="Permanent link">&para;</a></h2>
<p>在开始学习算法之前,我们首先需要明确算法的设计目标,换句话说,我们应该如何评判算法的优劣。从总体上看,算法设计追求以下两个层面的目标:</p>
<p>从总体上看,算法设计追求以下两个层面的目标:</p>
<ol>
<li><strong>找到问题解法</strong>。算法需要在规定的输入范围内,可靠地求得问题的正确解。</li>
<li><strong>寻求最优解法</strong>。同一个问题可能存在多种解法,我们希望找到尽可能高效的算法。</li>
@ -1805,7 +1805,7 @@
<li><strong>时间效率</strong>,即算法运行速度的快慢。</li>
<li><strong>空间效率</strong>,即算法占用内存空间的大小。</li>
</ul>
<p>数据结构与算法的终极目标是“又快又省”。了解如何评估算法效率非常重要,因为只有掌握了评价方法,我们才能进行算法间的对比分析,从而指导算法设计与优化。</p>
<p>简而言之,<strong>我们的目标是设计“既快又省”的数据结构与算法</strong>。掌握评估算法效率的方法则至关重要,因为只有了解评价标准,我们才能进行算法间的对比分析,从而指导算法设计与优化过程</p>
<h2 id="212">2.1.2. &nbsp; 效率评估方法<a class="headerlink" href="#212" title="Permanent link">&para;</a></h2>
<h3 id="_1">实际测试<a class="headerlink" href="#_1" title="Permanent link">&para;</a></h3>
<p>假设我们现在有算法 A 和算法 B它们都能解决同一问题现在需要对比这两个算法的效率。我们最直接的方法就是找一台计算机运行这两个算法并监控记录它们的运行时间和内存占用情况。这种评估方式能够反映真实情况但也存在较大局限性。</p>