This commit is contained in:
krahets
2025-09-11 03:53:53 +08:00
parent 9e518c0561
commit fe56286bb0
57 changed files with 1002 additions and 926 deletions

View File

@@ -3665,10 +3665,10 @@
<p>另一方面,<strong>展开完整测试非常耗费资源</strong>。随着输入数据量的变化,算法会表现出不同的效率。例如,在输入数据量较小时,算法 <code>A</code> 的运行时间比算法 <code>B</code> 短;而在输入数据量较大时,测试结果可能恰恰相反。因此,为了得到有说服力的结论,我们需要测试各种规模的输入数据,而这需要耗费大量的计算资源。</p>
<h2 id="212">2.1.2 &nbsp; 理论估算<a class="headerlink" href="#212" title="Permanent link">&para;</a></h2>
<p>由于实际测试具有较大的局限性,我们可以考虑仅通过一些计算来评估算法的效率。这种估算方法被称为<u>渐近复杂度分析asymptotic complexity analysis</u>,简称<u>复杂度分析</u></p>
<p>复杂度分析能够体现算法运行所需的时间和空间资源与输入数据大小之间的关系。<strong>它描述了随着输入数据大小的增加,算法执行所需时间和空间的增长趋势</strong>。这个定义有些拗口,我们可以将其分为三个重点来理解。</p>
<p>复杂度分析能够体现算法运行所需的时间和空间资源与输入数据规模之间的关系。<strong>它描述了随着输入数据规模的增加,算法执行所需时间和空间的增长趋势</strong>。这个定义有些拗口,我们可以将其分为三个重点来理解。</p>
<ul>
<li>“时间和空间资源”分别对应<u>时间复杂度time complexity</u><u>空间复杂度space complexity</u></li>
<li>“随着输入数据大小的增加”意味着复杂度反映了算法运行效率与输入数据体量之间的关系。</li>
<li>“随着输入数据规模的增加”意味着复杂度反映了算法运行效率与输入数据规模之间的关系。</li>
<li>“时间和空间的增长趋势”表示复杂度分析关注的不是运行时间或占用空间的具体值,而是时间或空间增长的“快慢”。</li>
</ul>
<p><strong>复杂度分析克服了实际测试方法的弊端</strong>,体现在以下几个方面。</p>