This commit is contained in:
krahets 2024-07-30 16:54:47 +08:00
parent 8fb4fdc14c
commit 55b91eb967
140 changed files with 426 additions and 1278 deletions

View file

@ -1120,14 +1120,6 @@
4.4   内存与缓存 * 4.4   内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1280,14 +1280,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1144,14 +1144,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1271,14 +1271,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1262,14 +1262,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1153,14 +1153,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
<span class="md-nav__icon md-icon"></span> <span class="md-nav__icon md-icon"></span>
</label> </label>
@ -1172,14 +1164,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>

View file

@ -1144,14 +1144,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>
@ -3704,7 +3696,11 @@
<p>从本质上看,<strong>逐行放置策略起到了剪枝的作用</strong>,它避免了同一行出现多个皇后的所有搜索分支。</p> <p>从本质上看,<strong>逐行放置策略起到了剪枝的作用</strong>,它避免了同一行出现多个皇后的所有搜索分支。</p>
<h3 id="2">2. &nbsp; 列与对角线剪枝<a class="headerlink" href="#2" title="Permanent link">&para;</a></h3> <h3 id="2">2. &nbsp; 列与对角线剪枝<a class="headerlink" href="#2" title="Permanent link">&para;</a></h3>
<p>为了满足列约束,我们可以利用一个长度为 <span class="arithmatex">\(n\)</span> 的布尔型数组 <code>cols</code> 记录每一列是否有皇后。在每次决定放置前,我们通过 <code>cols</code> 将已有皇后的列进行剪枝,并在回溯中动态更新 <code>cols</code> 的状态。</p> <p>为了满足列约束,我们可以利用一个长度为 <span class="arithmatex">\(n\)</span> 的布尔型数组 <code>cols</code> 记录每一列是否有皇后。在每次决定放置前,我们通过 <code>cols</code> 将已有皇后的列进行剪枝,并在回溯中动态更新 <code>cols</code> 的状态。</p>
<p>那么,如何处理对角线约束呢?设棋盘中某个格子的行列索引为 <span class="arithmatex">\((row, col)\)</span> ,选定矩阵中的某条主对角线,我们发现该对角线上所有格子的行索引减列索引都相等,<strong>即对角线上所有格子的 <span class="arithmatex">\(row - col\)</span> 为恒定值</strong></p> <div class="admonition tip">
<p class="admonition-title">Tip</p>
<p>请注意,矩阵的起点位于左上角,其中行索引从上到下增加,列索引从左到右增加。</p>
</div>
<p>那么,如何处理对角线约束呢?设棋盘中某个格子的行列索引为 <span class="arithmatex">\((row, col)\)</span> ,选定矩阵中的某条主对角线,我们发现该对角线上所有格子的行索引减列索引都相等,<strong>即主对角线上所有格子的 <span class="arithmatex">\(row - col\)</span> 为恒定值</strong></p>
<p>也就是说,如果两个格子满足 <span class="arithmatex">\(row_1 - col_1 = row_2 - col_2\)</span> ,则它们一定处在同一条主对角线上。利用该规律,我们可以借助图 13-18 所示的数组 <code>diags1</code> 记录每条主对角线上是否有皇后。</p> <p>也就是说,如果两个格子满足 <span class="arithmatex">\(row_1 - col_1 = row_2 - col_2\)</span> ,则它们一定处在同一条主对角线上。利用该规律,我们可以借助图 13-18 所示的数组 <code>diags1</code> 记录每条主对角线上是否有皇后。</p>
<p>同理,<strong>次对角线上的所有格子的 <span class="arithmatex">\(row + col\)</span> 是恒定值</strong>。我们同样也可以借助数组 <code>diags2</code> 来处理次对角线约束。</p> <p>同理,<strong>次对角线上的所有格子的 <span class="arithmatex">\(row + col\)</span> 是恒定值</strong>。我们同样也可以借助数组 <code>diags2</code> 来处理次对角线约束。</p>
<p><a class="glightbox" href="../n_queens_problem.assets/n_queens_cols_diagonals.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="处理列约束和对角线约束" class="animation-figure" src="../n_queens_problem.assets/n_queens_cols_diagonals.png" /></a></p> <p><a class="glightbox" href="../n_queens_problem.assets/n_queens_cols_diagonals.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="处理列约束和对角线约束" class="animation-figure" src="../n_queens_problem.assets/n_queens_cols_diagonals.png" /></a></p>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1144,14 +1144,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1277,14 +1277,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1202,14 +1202,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1271,14 +1271,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1202,14 +1202,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1322,14 +1322,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>
@ -3931,7 +3923,7 @@
<a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// 1 ns</span> <a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a id="__codelineno-1-5" name="__codelineno-1-5" href="#__codelineno-1-5"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// 10 ns</span> <a id="__codelineno-1-5" name="__codelineno-1-5" href="#__codelineno-1-5"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// 10 ns</span>
<a id="__codelineno-1-6" name="__codelineno-1-6" href="#__codelineno-1-6"></a><span class="w"> </span><span class="c1">// 循环 n 次</span> <a id="__codelineno-1-6" name="__codelineno-1-6" href="#__codelineno-1-6"></a><span class="w"> </span><span class="c1">// 循环 n 次</span>
<a id="__codelineno-1-7" name="__codelineno-1-7" href="#__codelineno-1-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// 1 ns ,每轮都要执行 i++</span> <a id="__codelineno-1-7" name="__codelineno-1-7" href="#__codelineno-1-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a id="__codelineno-1-8" name="__codelineno-1-8" href="#__codelineno-1-8"></a><span class="w"> </span><span class="n">cout</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="n">endl</span><span class="p">;</span><span class="w"> </span><span class="c1">// 5 ns</span> <a id="__codelineno-1-8" name="__codelineno-1-8" href="#__codelineno-1-8"></a><span class="w"> </span><span class="n">cout</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="n">endl</span><span class="p">;</span><span class="w"> </span><span class="c1">// 5 ns</span>
<a id="__codelineno-1-9" name="__codelineno-1-9" href="#__codelineno-1-9"></a><span class="w"> </span><span class="p">}</span> <a id="__codelineno-1-9" name="__codelineno-1-9" href="#__codelineno-1-9"></a><span class="w"> </span><span class="p">}</span>
<a id="__codelineno-1-10" name="__codelineno-1-10" href="#__codelineno-1-10"></a><span class="p">}</span> <a id="__codelineno-1-10" name="__codelineno-1-10" href="#__codelineno-1-10"></a><span class="p">}</span>
@ -3944,7 +3936,7 @@
<a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// 1 ns</span> <a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a id="__codelineno-2-5" name="__codelineno-2-5" href="#__codelineno-2-5"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// 10 ns</span> <a id="__codelineno-2-5" name="__codelineno-2-5" href="#__codelineno-2-5"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// 10 ns</span>
<a id="__codelineno-2-6" name="__codelineno-2-6" href="#__codelineno-2-6"></a><span class="w"> </span><span class="c1">// 循环 n 次</span> <a id="__codelineno-2-6" name="__codelineno-2-6" href="#__codelineno-2-6"></a><span class="w"> </span><span class="c1">// 循环 n 次</span>
<a id="__codelineno-2-7" name="__codelineno-2-7" href="#__codelineno-2-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// 1 ns ,每轮都要执行 i++</span> <a id="__codelineno-2-7" name="__codelineno-2-7" href="#__codelineno-2-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a id="__codelineno-2-8" name="__codelineno-2-8" href="#__codelineno-2-8"></a><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span><span class="w"> </span><span class="c1">// 5 ns</span> <a id="__codelineno-2-8" name="__codelineno-2-8" href="#__codelineno-2-8"></a><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span><span class="w"> </span><span class="c1">// 5 ns</span>
<a id="__codelineno-2-9" name="__codelineno-2-9" href="#__codelineno-2-9"></a><span class="w"> </span><span class="p">}</span> <a id="__codelineno-2-9" name="__codelineno-2-9" href="#__codelineno-2-9"></a><span class="w"> </span><span class="p">}</span>
<a id="__codelineno-2-10" name="__codelineno-2-10" href="#__codelineno-2-10"></a><span class="p">}</span> <a id="__codelineno-2-10" name="__codelineno-2-10" href="#__codelineno-2-10"></a><span class="p">}</span>
@ -3957,7 +3949,7 @@
<a id="__codelineno-3-4" name="__codelineno-3-4" href="#__codelineno-3-4"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="m">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// 1 ns</span> <a id="__codelineno-3-4" name="__codelineno-3-4" href="#__codelineno-3-4"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="m">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a id="__codelineno-3-5" name="__codelineno-3-5" href="#__codelineno-3-5"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="m">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// 10 ns</span> <a id="__codelineno-3-5" name="__codelineno-3-5" href="#__codelineno-3-5"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="m">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// 10 ns</span>
<a id="__codelineno-3-6" name="__codelineno-3-6" href="#__codelineno-3-6"></a><span class="w"> </span><span class="c1">// 循环 n 次</span> <a id="__codelineno-3-6" name="__codelineno-3-6" href="#__codelineno-3-6"></a><span class="w"> </span><span class="c1">// 循环 n 次</span>
<a id="__codelineno-3-7" name="__codelineno-3-7" href="#__codelineno-3-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// 1 ns ,每轮都要执行 i++</span> <a id="__codelineno-3-7" name="__codelineno-3-7" href="#__codelineno-3-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a id="__codelineno-3-8" name="__codelineno-3-8" href="#__codelineno-3-8"></a><span class="w"> </span><span class="n">Console</span><span class="p">.</span><span class="n">WriteLine</span><span class="p">(</span><span class="m">0</span><span class="p">);</span><span class="w"> </span><span class="c1">// 5 ns</span> <a id="__codelineno-3-8" name="__codelineno-3-8" href="#__codelineno-3-8"></a><span class="w"> </span><span class="n">Console</span><span class="p">.</span><span class="n">WriteLine</span><span class="p">(</span><span class="m">0</span><span class="p">);</span><span class="w"> </span><span class="c1">// 5 ns</span>
<a id="__codelineno-3-9" name="__codelineno-3-9" href="#__codelineno-3-9"></a><span class="w"> </span><span class="p">}</span> <a id="__codelineno-3-9" name="__codelineno-3-9" href="#__codelineno-3-9"></a><span class="w"> </span><span class="p">}</span>
<a id="__codelineno-3-10" name="__codelineno-3-10" href="#__codelineno-3-10"></a><span class="p">}</span> <a id="__codelineno-3-10" name="__codelineno-3-10" href="#__codelineno-3-10"></a><span class="p">}</span>
@ -3996,7 +3988,7 @@
<a id="__codelineno-6-4" name="__codelineno-6-4" href="#__codelineno-6-4"></a><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// 1 ns</span> <a id="__codelineno-6-4" name="__codelineno-6-4" href="#__codelineno-6-4"></a><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a id="__codelineno-6-5" name="__codelineno-6-5" href="#__codelineno-6-5"></a><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mf">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// 10 ns</span> <a id="__codelineno-6-5" name="__codelineno-6-5" href="#__codelineno-6-5"></a><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mf">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// 10 ns</span>
<a id="__codelineno-6-6" name="__codelineno-6-6" href="#__codelineno-6-6"></a><span class="w"> </span><span class="c1">// 循环 n 次</span> <a id="__codelineno-6-6" name="__codelineno-6-6" href="#__codelineno-6-6"></a><span class="w"> </span><span class="c1">// 循环 n 次</span>
<a id="__codelineno-6-7" name="__codelineno-6-7" href="#__codelineno-6-7"></a><span class="w"> </span><span class="k">for</span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// 1 ns ,每轮都要执行 i++</span> <a id="__codelineno-6-7" name="__codelineno-6-7" href="#__codelineno-6-7"></a><span class="w"> </span><span class="k">for</span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a id="__codelineno-6-8" name="__codelineno-6-8" href="#__codelineno-6-8"></a><span class="w"> </span><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="mf">0</span><span class="p">);</span><span class="w"> </span><span class="c1">// 5 ns</span> <a id="__codelineno-6-8" name="__codelineno-6-8" href="#__codelineno-6-8"></a><span class="w"> </span><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="mf">0</span><span class="p">);</span><span class="w"> </span><span class="c1">// 5 ns</span>
<a id="__codelineno-6-9" name="__codelineno-6-9" href="#__codelineno-6-9"></a><span class="w"> </span><span class="p">}</span> <a id="__codelineno-6-9" name="__codelineno-6-9" href="#__codelineno-6-9"></a><span class="w"> </span><span class="p">}</span>
<a id="__codelineno-6-10" name="__codelineno-6-10" href="#__codelineno-6-10"></a><span class="p">}</span> <a id="__codelineno-6-10" name="__codelineno-6-10" href="#__codelineno-6-10"></a><span class="p">}</span>
@ -4009,7 +4001,7 @@
<a id="__codelineno-7-4" name="__codelineno-7-4" href="#__codelineno-7-4"></a><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// 1 ns</span> <a id="__codelineno-7-4" name="__codelineno-7-4" href="#__codelineno-7-4"></a><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a id="__codelineno-7-5" name="__codelineno-7-5" href="#__codelineno-7-5"></a><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mf">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// 10 ns</span> <a id="__codelineno-7-5" name="__codelineno-7-5" href="#__codelineno-7-5"></a><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mf">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// 10 ns</span>
<a id="__codelineno-7-6" name="__codelineno-7-6" href="#__codelineno-7-6"></a><span class="w"> </span><span class="c1">// 循环 n 次</span> <a id="__codelineno-7-6" name="__codelineno-7-6" href="#__codelineno-7-6"></a><span class="w"> </span><span class="c1">// 循环 n 次</span>
<a id="__codelineno-7-7" name="__codelineno-7-7" href="#__codelineno-7-7"></a><span class="w"> </span><span class="k">for</span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// 1 ns ,每轮都要执行 i++</span> <a id="__codelineno-7-7" name="__codelineno-7-7" href="#__codelineno-7-7"></a><span class="w"> </span><span class="k">for</span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a id="__codelineno-7-8" name="__codelineno-7-8" href="#__codelineno-7-8"></a><span class="w"> </span><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="mf">0</span><span class="p">);</span><span class="w"> </span><span class="c1">// 5 ns</span> <a id="__codelineno-7-8" name="__codelineno-7-8" href="#__codelineno-7-8"></a><span class="w"> </span><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="mf">0</span><span class="p">);</span><span class="w"> </span><span class="c1">// 5 ns</span>
<a id="__codelineno-7-9" name="__codelineno-7-9" href="#__codelineno-7-9"></a><span class="w"> </span><span class="p">}</span> <a id="__codelineno-7-9" name="__codelineno-7-9" href="#__codelineno-7-9"></a><span class="w"> </span><span class="p">}</span>
<a id="__codelineno-7-10" name="__codelineno-7-10" href="#__codelineno-7-10"></a><span class="p">}</span> <a id="__codelineno-7-10" name="__codelineno-7-10" href="#__codelineno-7-10"></a><span class="p">}</span>
@ -4022,7 +4014,7 @@
<a id="__codelineno-8-4" name="__codelineno-8-4" href="#__codelineno-8-4"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="m">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// 1 ns</span> <a id="__codelineno-8-4" name="__codelineno-8-4" href="#__codelineno-8-4"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="m">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a id="__codelineno-8-5" name="__codelineno-8-5" href="#__codelineno-8-5"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="m">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// 10 ns</span> <a id="__codelineno-8-5" name="__codelineno-8-5" href="#__codelineno-8-5"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="m">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// 10 ns</span>
<a id="__codelineno-8-6" name="__codelineno-8-6" href="#__codelineno-8-6"></a><span class="w"> </span><span class="c1">// 循环 n 次</span> <a id="__codelineno-8-6" name="__codelineno-8-6" href="#__codelineno-8-6"></a><span class="w"> </span><span class="c1">// 循环 n 次</span>
<a id="__codelineno-8-7" name="__codelineno-8-7" href="#__codelineno-8-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// 1 ns ,每轮都要执行 i++</span> <a id="__codelineno-8-7" name="__codelineno-8-7" href="#__codelineno-8-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a id="__codelineno-8-8" name="__codelineno-8-8" href="#__codelineno-8-8"></a><span class="w"> </span><span class="n">print</span><span class="p">(</span><span class="m">0</span><span class="p">);</span><span class="w"> </span><span class="c1">// 5 ns</span> <a id="__codelineno-8-8" name="__codelineno-8-8" href="#__codelineno-8-8"></a><span class="w"> </span><span class="n">print</span><span class="p">(</span><span class="m">0</span><span class="p">);</span><span class="w"> </span><span class="c1">// 5 ns</span>
<a id="__codelineno-8-9" name="__codelineno-8-9" href="#__codelineno-8-9"></a><span class="w"> </span><span class="p">}</span> <a id="__codelineno-8-9" name="__codelineno-8-9" href="#__codelineno-8-9"></a><span class="w"> </span><span class="p">}</span>
<a id="__codelineno-8-10" name="__codelineno-8-10" href="#__codelineno-8-10"></a><span class="p">}</span> <a id="__codelineno-8-10" name="__codelineno-8-10" href="#__codelineno-8-10"></a><span class="p">}</span>
@ -4035,7 +4027,7 @@
<a id="__codelineno-9-4" name="__codelineno-9-4" href="#__codelineno-9-4"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// 1 ns</span> <a id="__codelineno-9-4" name="__codelineno-9-4" href="#__codelineno-9-4"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a id="__codelineno-9-5" name="__codelineno-9-5" href="#__codelineno-9-5"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// 10 ns</span> <a id="__codelineno-9-5" name="__codelineno-9-5" href="#__codelineno-9-5"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// 10 ns</span>
<a id="__codelineno-9-6" name="__codelineno-9-6" href="#__codelineno-9-6"></a><span class="w"> </span><span class="c1">// 循环 n 次</span> <a id="__codelineno-9-6" name="__codelineno-9-6" href="#__codelineno-9-6"></a><span class="w"> </span><span class="c1">// 循环 n 次</span>
<a id="__codelineno-9-7" name="__codelineno-9-7" href="#__codelineno-9-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="o">..</span><span class="n">n</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// 1 ns ,每轮都要执行 i++</span> <a id="__codelineno-9-7" name="__codelineno-9-7" href="#__codelineno-9-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="o">..</span><span class="n">n</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a id="__codelineno-9-8" name="__codelineno-9-8" href="#__codelineno-9-8"></a><span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">&quot;{}&quot;</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span><span class="w"> </span><span class="c1">// 5 ns</span> <a id="__codelineno-9-8" name="__codelineno-9-8" href="#__codelineno-9-8"></a><span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">&quot;{}&quot;</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span><span class="w"> </span><span class="c1">// 5 ns</span>
<a id="__codelineno-9-9" name="__codelineno-9-9" href="#__codelineno-9-9"></a><span class="w"> </span><span class="p">}</span> <a id="__codelineno-9-9" name="__codelineno-9-9" href="#__codelineno-9-9"></a><span class="w"> </span><span class="p">}</span>
<a id="__codelineno-9-10" name="__codelineno-9-10" href="#__codelineno-9-10"></a><span class="p">}</span> <a id="__codelineno-9-10" name="__codelineno-9-10" href="#__codelineno-9-10"></a><span class="p">}</span>
@ -4048,7 +4040,7 @@
<a id="__codelineno-10-4" name="__codelineno-10-4" href="#__codelineno-10-4"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// 1 ns</span> <a id="__codelineno-10-4" name="__codelineno-10-4" href="#__codelineno-10-4"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a id="__codelineno-10-5" name="__codelineno-10-5" href="#__codelineno-10-5"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// 10 ns</span> <a id="__codelineno-10-5" name="__codelineno-10-5" href="#__codelineno-10-5"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span><span class="w"> </span><span class="c1">// 10 ns</span>
<a id="__codelineno-10-6" name="__codelineno-10-6" href="#__codelineno-10-6"></a><span class="w"> </span><span class="c1">// 循环 n 次</span> <a id="__codelineno-10-6" name="__codelineno-10-6" href="#__codelineno-10-6"></a><span class="w"> </span><span class="c1">// 循环 n 次</span>
<a id="__codelineno-10-7" name="__codelineno-10-7" href="#__codelineno-10-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// 1 ns ,每轮都要执行 i++</span> <a id="__codelineno-10-7" name="__codelineno-10-7" href="#__codelineno-10-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">n</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a id="__codelineno-10-8" name="__codelineno-10-8" href="#__codelineno-10-8"></a><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">&quot;%d&quot;</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span><span class="w"> </span><span class="c1">// 5 ns</span> <a id="__codelineno-10-8" name="__codelineno-10-8" href="#__codelineno-10-8"></a><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">&quot;%d&quot;</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span><span class="w"> </span><span class="c1">// 5 ns</span>
<a id="__codelineno-10-9" name="__codelineno-10-9" href="#__codelineno-10-9"></a><span class="w"> </span><span class="p">}</span> <a id="__codelineno-10-9" name="__codelineno-10-9" href="#__codelineno-10-9"></a><span class="w"> </span><span class="p">}</span>
<a id="__codelineno-10-10" name="__codelineno-10-10" href="#__codelineno-10-10"></a><span class="p">}</span> <a id="__codelineno-10-10" name="__codelineno-10-10" href="#__codelineno-10-10"></a><span class="p">}</span>
@ -4061,7 +4053,7 @@
<a id="__codelineno-11-4" name="__codelineno-11-4" href="#__codelineno-11-4"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="c1">// 1 ns</span> <a id="__codelineno-11-4" name="__codelineno-11-4" href="#__codelineno-11-4"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a id="__codelineno-11-5" name="__codelineno-11-5" href="#__codelineno-11-5"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="m">2</span><span class="w"> </span><span class="c1">// 10 ns</span> <a id="__codelineno-11-5" name="__codelineno-11-5" href="#__codelineno-11-5"></a><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="m">2</span><span class="w"> </span><span class="c1">// 10 ns</span>
<a id="__codelineno-11-6" name="__codelineno-11-6" href="#__codelineno-11-6"></a><span class="w"> </span><span class="c1">// 循环 n 次</span> <a id="__codelineno-11-6" name="__codelineno-11-6" href="#__codelineno-11-6"></a><span class="w"> </span><span class="c1">// 循环 n 次</span>
<a id="__codelineno-11-7" name="__codelineno-11-7" href="#__codelineno-11-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="m">0.</span><span class="p">.</span><span class="o">&lt;</span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// 1 ns ,每轮都要执行 i++</span> <a id="__codelineno-11-7" name="__codelineno-11-7" href="#__codelineno-11-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="m">0.</span><span class="p">.</span><span class="o">&lt;</span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// 1 ns</span>
<a id="__codelineno-11-8" name="__codelineno-11-8" href="#__codelineno-11-8"></a><span class="w"> </span><span class="n">println</span><span class="p">(</span><span class="m">0</span><span class="p">)</span><span class="w"> </span><span class="c1">// 5 ns</span> <a id="__codelineno-11-8" name="__codelineno-11-8" href="#__codelineno-11-8"></a><span class="w"> </span><span class="n">println</span><span class="p">(</span><span class="m">0</span><span class="p">)</span><span class="w"> </span><span class="c1">// 5 ns</span>
<a id="__codelineno-11-9" name="__codelineno-11-9" href="#__codelineno-11-9"></a><span class="w"> </span><span class="p">}</span> <a id="__codelineno-11-9" name="__codelineno-11-9" href="#__codelineno-11-9"></a><span class="w"> </span><span class="p">}</span>
<a id="__codelineno-11-10" name="__codelineno-11-10" href="#__codelineno-11-10"></a><span class="p">}</span> <a id="__codelineno-11-10" name="__codelineno-11-10" href="#__codelineno-11-10"></a><span class="p">}</span>
@ -6734,7 +6726,7 @@ O(\log_m n) = O(\log_k n / \log_k m) = O(\log_k n)
<a id="__codelineno-191-4" name="__codelineno-191-4" href="#__codelineno-191-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span> <a id="__codelineno-191-4" name="__codelineno-191-4" href="#__codelineno-191-4"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a id="__codelineno-191-5" name="__codelineno-191-5" href="#__codelineno-191-5"></a><span class="w"> </span><span class="p">}</span> <a id="__codelineno-191-5" name="__codelineno-191-5" href="#__codelineno-191-5"></a><span class="w"> </span><span class="p">}</span>
<a id="__codelineno-191-6" name="__codelineno-191-6" href="#__codelineno-191-6"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">linear_log_recur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">linear_log_recur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">2</span><span class="p">);</span> <a id="__codelineno-191-6" name="__codelineno-191-6" href="#__codelineno-191-6"></a><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">linear_log_recur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">linear_log_recur</span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">2</span><span class="p">);</span>
<a id="__codelineno-191-7" name="__codelineno-191-7" href="#__codelineno-191-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="o">..</span><span class="n">n</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="p">{</span> <a id="__codelineno-191-7" name="__codelineno-191-7" href="#__codelineno-191-7"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">_</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">0</span><span class="o">..</span><span class="n">n</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-191-8" name="__codelineno-191-8" href="#__codelineno-191-8"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span> <a id="__codelineno-191-8" name="__codelineno-191-8" href="#__codelineno-191-8"></a><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<a id="__codelineno-191-9" name="__codelineno-191-9" href="#__codelineno-191-9"></a><span class="w"> </span><span class="p">}</span> <a id="__codelineno-191-9" name="__codelineno-191-9" href="#__codelineno-191-9"></a><span class="w"> </span><span class="p">}</span>
<a id="__codelineno-191-10" name="__codelineno-191-10" href="#__codelineno-191-10"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span> <a id="__codelineno-191-10" name="__codelineno-191-10" href="#__codelineno-191-10"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">count</span><span class="p">;</span>

View file

@ -1154,14 +1154,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1229,14 +1229,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1202,14 +1202,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>
@ -3690,7 +3682,7 @@
<p class="admonition-title">Tip</p> <p class="admonition-title">Tip</p>
<p>值得说明的是,将内存比作 Excel 表格是一个简化的类比,实际内存的工作机制比较复杂,涉及地址空间、内存管理、缓存机制、虚拟内存和物理内存等概念。</p> <p>值得说明的是,将内存比作 Excel 表格是一个简化的类比,实际内存的工作机制比较复杂,涉及地址空间、内存管理、缓存机制、虚拟内存和物理内存等概念。</p>
</div> </div>
<p>内存是所有程序的共享资源,当某块内存被某个程序占用时,则无法被其他程序同时使用了。<strong>因此在数据结构与算法的设计中,内存资源是一个重要的考虑因素</strong>。比如,算法所占用的内存峰值不应超过系统剩余空闲内存;如果缺少连续大块的内存空间,那么所选用的数据结构必须能够存储在分散的内存空间内。</p> <p>内存是所有程序的共享资源,当某块内存被某个程序占用时,则通常无法被其他程序同时使用了。<strong>因此在数据结构与算法的设计中,内存资源是一个重要的考虑因素</strong>。比如,算法所占用的内存峰值不应超过系统剩余空闲内存;如果缺少连续大块的内存空间,那么所选用的数据结构必须能够存储在分散的内存空间内。</p>
<p>如图 3-3 所示,<strong>物理结构反映了数据在计算机内存中的存储方式</strong>,可分为连续空间存储(数组)和分散空间存储(链表)。物理结构从底层决定了数据的访问、更新、增删等操作方法,两种物理结构在时间效率和空间效率方面呈现出互补的特点。</p> <p>如图 3-3 所示,<strong>物理结构反映了数据在计算机内存中的存储方式</strong>,可分为连续空间存储(数组)和分散空间存储(链表)。物理结构从底层决定了数据的访问、更新、增删等操作方法,两种物理结构在时间效率和空间效率方面呈现出互补的特点。</p>
<p><a class="glightbox" href="../classification_of_data_structure.assets/classification_phisical_structure.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="连续空间存储与分散空间存储" class="animation-figure" src="../classification_of_data_structure.assets/classification_phisical_structure.png" /></a></p> <p><a class="glightbox" href="../classification_of_data_structure.assets/classification_phisical_structure.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="连续空间存储与分散空间存储" class="animation-figure" src="../classification_of_data_structure.assets/classification_phisical_structure.png" /></a></p>
<p align="center"> 图 3-3 &nbsp; 连续空间存储与分散空间存储 </p> <p align="center"> 图 3-3 &nbsp; 连续空间存储与分散空间存储 </p>

View file

@ -1144,14 +1144,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1202,14 +1202,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1202,14 +1202,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>
@ -3810,7 +3802,7 @@
<a id="__codelineno-4-12" name="__codelineno-4-12" href="#__codelineno-4-12"></a><span class="w"> </span><span class="c1">// 递归子问题 f(m+1, j)</span> <a id="__codelineno-4-12" name="__codelineno-4-12" href="#__codelineno-4-12"></a><span class="w"> </span><span class="c1">// 递归子问题 f(m+1, j)</span>
<a id="__codelineno-4-13" name="__codelineno-4-13" href="#__codelineno-4-13"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">dfs</span><span class="p">(</span><span class="nx">nums</span><span class="p">,</span><span class="w"> </span><span class="nx">target</span><span class="p">,</span><span class="w"> </span><span class="nx">m</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="nx">j</span><span class="p">)</span> <a id="__codelineno-4-13" name="__codelineno-4-13" href="#__codelineno-4-13"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">dfs</span><span class="p">(</span><span class="nx">nums</span><span class="p">,</span><span class="w"> </span><span class="nx">target</span><span class="p">,</span><span class="w"> </span><span class="nx">m</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="nx">j</span><span class="p">)</span>
<a id="__codelineno-4-14" name="__codelineno-4-14" href="#__codelineno-4-14"></a><span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">m</span><span class="p">]</span><span class="w"> </span><span class="p">&gt;</span><span class="w"> </span><span class="nx">target</span><span class="w"> </span><span class="p">{</span> <a id="__codelineno-4-14" name="__codelineno-4-14" href="#__codelineno-4-14"></a><span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="nx">nums</span><span class="p">[</span><span class="nx">m</span><span class="p">]</span><span class="w"> </span><span class="p">&gt;</span><span class="w"> </span><span class="nx">target</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-4-15" name="__codelineno-4-15" href="#__codelineno-4-15"></a><span class="w"> </span><span class="c1">// 于则递归左半数组</span> <a id="__codelineno-4-15" name="__codelineno-4-15" href="#__codelineno-4-15"></a><span class="w"> </span><span class="c1">// 于则递归左半数组</span>
<a id="__codelineno-4-16" name="__codelineno-4-16" href="#__codelineno-4-16"></a><span class="w"> </span><span class="c1">// 递归子问题 f(i, m-1)</span> <a id="__codelineno-4-16" name="__codelineno-4-16" href="#__codelineno-4-16"></a><span class="w"> </span><span class="c1">// 递归子问题 f(i, m-1)</span>
<a id="__codelineno-4-17" name="__codelineno-4-17" href="#__codelineno-4-17"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">dfs</span><span class="p">(</span><span class="nx">nums</span><span class="p">,</span><span class="w"> </span><span class="nx">target</span><span class="p">,</span><span class="w"> </span><span class="nx">i</span><span class="p">,</span><span class="w"> </span><span class="nx">m</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <a id="__codelineno-4-17" name="__codelineno-4-17" href="#__codelineno-4-17"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">dfs</span><span class="p">(</span><span class="nx">nums</span><span class="p">,</span><span class="w"> </span><span class="nx">target</span><span class="p">,</span><span class="w"> </span><span class="nx">i</span><span class="p">,</span><span class="w"> </span><span class="nx">m</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span>
<a id="__codelineno-4-18" name="__codelineno-4-18" href="#__codelineno-4-18"></a><span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span> <a id="__codelineno-4-18" name="__codelineno-4-18" href="#__codelineno-4-18"></a><span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1154,14 +1154,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1144,14 +1144,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1193,14 +1193,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1211,14 +1211,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1140,14 +1140,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1211,14 +1211,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>
@ -3684,9 +3676,9 @@
<h1 id="01">0.1 &nbsp; 关于本书<a class="headerlink" href="#01" title="Permanent link">&para;</a></h1> <h1 id="01">0.1 &nbsp; 关于本书<a class="headerlink" href="#01" title="Permanent link">&para;</a></h1>
<p>本项目旨在创建一本开源、免费、对新手友好的数据结构与算法入门教程。</p> <p>本项目旨在创建一本开源、免费、对新手友好的数据结构与算法入门教程。</p>
<ul> <ul>
<li>全书采用动画图解,结构化地讲解数据结构与算法知识,内容清晰易懂,学习曲线平滑</li> <li>全书采用动画图解,内容清晰易懂、学习曲线平滑,引导初学者探索数据结构与算法的知识地图</li>
<li>算法源代码皆可一键运行,支持 Python、C++、Java、C#、Go、Swift、JavaScript、TypeScript、Dart、Rust、C 和 Zig 等语言</li> <li>源代码可一键运行,帮助读者在练习中提升编程技能,了解算法工作原理和数据结构底层实现</li>
<li>鼓励读者在线上章节评论区互帮互助、共同进步,提问与评论通常可在两日内得到回复</li> <li>提倡读者互助学习,欢迎大家在评论区提出问题与分享见解,在交流讨论中共同进步</li>
</ul> </ul>
<h2 id="011">0.1.1 &nbsp; 读者对象<a class="headerlink" href="#011" title="Permanent link">&para;</a></h2> <h2 id="011">0.1.1 &nbsp; 读者对象<a class="headerlink" href="#011" title="Permanent link">&para;</a></h2>
<p>若你是算法初学者,从未接触过算法,或者已经有一些刷题经验,对数据结构与算法有模糊的认识,在会与不会之间反复横跳,那么本书正是为你量身定制的!</p> <p>若你是算法初学者,从未接触过算法,或者已经有一些刷题经验,对数据结构与算法有模糊的认识,在会与不会之间反复横跳,那么本书正是为你量身定制的!</p>
@ -3708,7 +3700,7 @@
<h2 id="013">0.1.3 &nbsp; 致谢<a class="headerlink" href="#013" title="Permanent link">&para;</a></h2> <h2 id="013">0.1.3 &nbsp; 致谢<a class="headerlink" href="#013" title="Permanent link">&para;</a></h2>
<p>本书在开源社区众多贡献者的共同努力下不断完善。感谢每一位投入时间与精力的撰稿人,他们是(按照 GitHub 自动生成的顺序krahets、Gonglja、nuomi1、codingonion、Reanon、justin-tse、hpstory、danielsss、curtishd、night-cruise、S-N-O-R-L-A-X、msk397、gvenusleo、RiverTwilight、gyt95、zhuoqinyue、Zuoxun、mingXta、hello-ikun、khoaxuantu、FangYuan33、GN-Yu、longsizhuo、mgisr、Cathay-Chen、guowei-gong、xBLACKICEx、K3v123、IsChristina、JoseHung、qualifier1024、pengchzn、Guanngxu、QiLOL、L-Super、WSL0809、Slone123c、lhxsm、yuan0221、what-is-me、rongyi、JeffersonHuang、longranger2、theNefelibatas、yuelinxin、xiongsp、nanlei、a16su、cy-by-side、gaofer、malone6、Wonderdch、hongyun-robot、XiaChuerwu、yd-j、bluebean-cloud、iron-irax、he-weilai、Nigh、MolDuM、Phoenix0415、XC-Zero、SamJin98、reeswell、NI-SW、Horbin-Magician、xjr7670、YangXuanyi、DullSword、iStig、qq909244296、jiaxianhua、wenjianmin、keshida、kilikilikid、lclc6、lwbaptx、luluxia、boloboloda、hts0000、gledfish、fbigm、echo1937、szu17dmy、dshlstarr、coderlef、czruby、beintentional、KeiichiKasai、xb534、ElaBosak233、baagod、zhouLion、yishangzhang、yi427、yabo083、weibk、wangwang105、th1nk3r-ing、tao363、4yDX3906、syd168、siqyka、selear、sdshaoda、noobcodemaker、chadyi、lyl625760、lucaswangdev、liuxjerry、0130w、shanghai-Jerry、JackYang-hellobobo、Javesun99、lipusheng、ShiMaRing、FreddieLi、FloranceYeh、Transmigration-zhou、fanchenggang、gltianwen、Dr-XYZ、curly210102、CuB3y0nd、youshaoXG、bubble9um、fanenr、52coder、foursevenlove、KorsChen、ZongYangL、hezhizhen、linzeyan、ZJKung、GaochaoZhu、yang-le、Evilrabbit520、Turing-1024-Lee、Suremotoo、Allen-Scai、Richard-Zhang1019、qingpeng9802、primexiao、nidhoggfgg、1ch0、MwumLi、ZnYang2018、hugtyftg、logan-qiu、psychelzh 和 Keynman 。</p> <p>本书在开源社区众多贡献者的共同努力下不断完善。感谢每一位投入时间与精力的撰稿人,他们是(按照 GitHub 自动生成的顺序krahets、Gonglja、nuomi1、codingonion、Reanon、justin-tse、hpstory、danielsss、curtishd、night-cruise、S-N-O-R-L-A-X、msk397、gvenusleo、RiverTwilight、gyt95、zhuoqinyue、Zuoxun、mingXta、hello-ikun、khoaxuantu、FangYuan33、GN-Yu、longsizhuo、mgisr、Cathay-Chen、guowei-gong、xBLACKICEx、K3v123、IsChristina、JoseHung、qualifier1024、pengchzn、Guanngxu、QiLOL、L-Super、WSL0809、Slone123c、lhxsm、yuan0221、what-is-me、rongyi、JeffersonHuang、longranger2、theNefelibatas、yuelinxin、xiongsp、nanlei、a16su、cy-by-side、gaofer、malone6、Wonderdch、hongyun-robot、XiaChuerwu、yd-j、bluebean-cloud、iron-irax、he-weilai、Nigh、MolDuM、Phoenix0415、XC-Zero、SamJin98、reeswell、NI-SW、Horbin-Magician、xjr7670、YangXuanyi、DullSword、iStig、qq909244296、jiaxianhua、wenjianmin、keshida、kilikilikid、lclc6、lwbaptx、luluxia、boloboloda、hts0000、gledfish、fbigm、echo1937、szu17dmy、dshlstarr、coderlef、czruby、beintentional、KeiichiKasai、xb534、ElaBosak233、baagod、zhouLion、yishangzhang、yi427、yabo083、weibk、wangwang105、th1nk3r-ing、tao363、4yDX3906、syd168、siqyka、selear、sdshaoda、noobcodemaker、chadyi、lyl625760、lucaswangdev、liuxjerry、0130w、shanghai-Jerry、JackYang-hellobobo、Javesun99、lipusheng、ShiMaRing、FreddieLi、FloranceYeh、Transmigration-zhou、fanchenggang、gltianwen、Dr-XYZ、curly210102、CuB3y0nd、youshaoXG、bubble9um、fanenr、52coder、foursevenlove、KorsChen、ZongYangL、hezhizhen、linzeyan、ZJKung、GaochaoZhu、yang-le、Evilrabbit520、Turing-1024-Lee、Suremotoo、Allen-Scai、Richard-Zhang1019、qingpeng9802、primexiao、nidhoggfgg、1ch0、MwumLi、ZnYang2018、hugtyftg、logan-qiu、psychelzh 和 Keynman 。</p>
<p>本书的代码审阅工作由 codingonion、curtishd、Gonglja、gvenusleo、hpstory、justin-tse、krahets、night-cruise、nuomi1 和 Reanon 完成(按照首字母顺序排列)。感谢他们付出的时间与精力,正是他们确保了各语言代码的规范与统一。</p> <p>本书的代码审阅工作由 codingonion、curtishd、Gonglja、gvenusleo、hpstory、justin-tse、khoaxuantu、krahets、night-cruise、nuomi1 和 Reanon 完成(按照首字母顺序排列)。感谢他们付出的时间与精力,正是他们确保了各语言代码的规范与统一。</p>
<p>在本书的创作过程中,我得到了许多人的帮助。</p> <p>在本书的创作过程中,我得到了许多人的帮助。</p>
<ul> <ul>
<li>感谢我在公司的导师李汐博士,在一次畅谈中你鼓励我“快行动起来”,坚定了我写这本书的决心;</li> <li>感谢我在公司的导师李汐博士,在一次畅谈中你鼓励我“快行动起来”,坚定了我写这本书的决心;</li>

View file

@ -1144,14 +1144,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1229,14 +1229,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1154,14 +1154,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>
@ -4100,8 +4092,7 @@
<h2 id="1182">11.8.2 &nbsp; 算法特性<a class="headerlink" href="#1182" title="Permanent link">&para;</a></h2> <h2 id="1182">11.8.2 &nbsp; 算法特性<a class="headerlink" href="#1182" title="Permanent link">&para;</a></h2>
<p>桶排序适用于处理体量很大的数据。例如,输入数据包含 100 万个元素,由于空间限制,系统内存无法一次性加载所有数据。此时,可以将数据分成 1000 个桶,然后分别对每个桶进行排序,最后将结果合并。</p> <p>桶排序适用于处理体量很大的数据。例如,输入数据包含 100 万个元素,由于空间限制,系统内存无法一次性加载所有数据。此时,可以将数据分成 1000 个桶,然后分别对每个桶进行排序,最后将结果合并。</p>
<ul> <ul>
<li><strong>时间复杂度为 <span class="arithmatex">\(O(n + k)\)</span></strong> :假设元素在各个桶内平均分布,那么每个桶内的元素数量为 <span class="arithmatex">\(\frac{n}{k}\)</span> 。假设排序单个桶使用 <span class="arithmatex">\(O(\frac{n}{k} \log\frac{n}{k})\)</span> 时间,则排序所有桶使用 <span class="arithmatex">\(O(n \log\frac{n}{k})\)</span> 时间。<strong>当桶数量 <span class="arithmatex">\(k\)</span> 比较大时,时间复杂度则趋向于 <span class="arithmatex">\(O(n)\)</span></strong> 。合并结果时需要遍历所有桶和元素,花费 <span class="arithmatex">\(O(n + k)\)</span> 时间。</li> <li><strong>时间复杂度为 <span class="arithmatex">\(O(n + k)\)</span></strong> :假设元素在各个桶内平均分布,那么每个桶内的元素数量为 <span class="arithmatex">\(\frac{n}{k}\)</span> 。假设排序单个桶使用 <span class="arithmatex">\(O(\frac{n}{k} \log\frac{n}{k})\)</span> 时间,则排序所有桶使用 <span class="arithmatex">\(O(n \log\frac{n}{k})\)</span> 时间。<strong>当桶数量 <span class="arithmatex">\(k\)</span> 比较大时,时间复杂度则趋向于 <span class="arithmatex">\(O(n)\)</span></strong> 。合并结果时需要遍历所有桶和元素,花费 <span class="arithmatex">\(O(n + k)\)</span> 时间。在最差情况下,所有数据被分配到一个桶中,且排序该桶使用 <span class="arithmatex">\(O(n^2)\)</span> 时间。</li>
<li><strong>自适应排序</strong>:在最差情况下,所有数据被分配到一个桶中,且排序该桶使用 <span class="arithmatex">\(O(n^2)\)</span> 时间。</li>
<li><strong>空间复杂度为 <span class="arithmatex">\(O(n + k)\)</span>、非原地排序</strong>:需要借助 <span class="arithmatex">\(k\)</span> 个桶和总共 <span class="arithmatex">\(n\)</span> 个元素的额外空间。</li> <li><strong>空间复杂度为 <span class="arithmatex">\(O(n + k)\)</span>、非原地排序</strong>:需要借助 <span class="arithmatex">\(k\)</span> 个桶和总共 <span class="arithmatex">\(n\)</span> 个元素的额外空间。</li>
<li>桶排序是否稳定取决于排序桶内元素的算法是否稳定。</li> <li>桶排序是否稳定取决于排序桶内元素的算法是否稳定。</li>
</ul> </ul>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>
@ -4313,7 +4305,7 @@
</details> </details>
<h2 id="1152">11.5.2 &nbsp; 算法特性<a class="headerlink" href="#1152" title="Permanent link">&para;</a></h2> <h2 id="1152">11.5.2 &nbsp; 算法特性<a class="headerlink" href="#1152" title="Permanent link">&para;</a></h2>
<ul> <ul>
<li><strong>时间复杂度为 <span class="arithmatex">\(O(n \log n)\)</span>、自适应排序</strong>:在平均情况下,哨兵划分的递归层数为 <span class="arithmatex">\(\log n\)</span> ,每层中的总循环数为 <span class="arithmatex">\(n\)</span> ,总体使用 <span class="arithmatex">\(O(n \log n)\)</span> 时间。在最差情况下,每轮哨兵划分操作都将长度为 <span class="arithmatex">\(n\)</span> 的数组划分为长度为 <span class="arithmatex">\(0\)</span><span class="arithmatex">\(n - 1\)</span> 的两个子数组,此时递归层数达到 <span class="arithmatex">\(n\)</span> ,每层中的循环数为 <span class="arithmatex">\(n\)</span> ,总体使用 <span class="arithmatex">\(O(n^2)\)</span> 时间。</li> <li><strong>时间复杂度为 <span class="arithmatex">\(O(n \log n)\)</span>自适应排序</strong>:在平均情况下,哨兵划分的递归层数为 <span class="arithmatex">\(\log n\)</span> ,每层中的总循环数为 <span class="arithmatex">\(n\)</span> ,总体使用 <span class="arithmatex">\(O(n \log n)\)</span> 时间。在最差情况下,每轮哨兵划分操作都将长度为 <span class="arithmatex">\(n\)</span> 的数组划分为长度为 <span class="arithmatex">\(0\)</span><span class="arithmatex">\(n - 1\)</span> 的两个子数组,此时递归层数达到 <span class="arithmatex">\(n\)</span> ,每层中的循环数为 <span class="arithmatex">\(n\)</span> ,总体使用 <span class="arithmatex">\(O(n^2)\)</span> 时间。</li>
<li><strong>空间复杂度为 <span class="arithmatex">\(O(n)\)</span>、原地排序</strong>:在输入数组完全倒序的情况下,达到最差递归深度 <span class="arithmatex">\(n\)</span> ,使用 <span class="arithmatex">\(O(n)\)</span> 栈帧空间。排序操作是在原数组上进行的,未借助额外数组。</li> <li><strong>空间复杂度为 <span class="arithmatex">\(O(n)\)</span>、原地排序</strong>:在输入数组完全倒序的情况下,达到最差递归深度 <span class="arithmatex">\(n\)</span> ,使用 <span class="arithmatex">\(O(n)\)</span> 栈帧空间。排序操作是在原数组上进行的,未借助额外数组。</li>
<li><strong>非稳定排序</strong>:在哨兵划分的最后一步,基准数可能会被交换至相等元素的右侧。</li> <li><strong>非稳定排序</strong>:在哨兵划分的最后一步,基准数可能会被交换至相等元素的右侧。</li>
</ul> </ul>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>
@ -3691,11 +3683,10 @@
<a id="__codelineno-0-15" name="__codelineno-0-15" href="#__codelineno-0-15"></a><span class="w"> </span><span class="o">(</span><span class="s1">&#39;C&#39;</span>,<span class="w"> </span><span class="m">21</span><span class="o">)</span> <a id="__codelineno-0-15" name="__codelineno-0-15" href="#__codelineno-0-15"></a><span class="w"> </span><span class="o">(</span><span class="s1">&#39;C&#39;</span>,<span class="w"> </span><span class="m">21</span><span class="o">)</span>
<a id="__codelineno-0-16" name="__codelineno-0-16" href="#__codelineno-0-16"></a><span class="w"> </span><span class="o">(</span><span class="s1">&#39;E&#39;</span>,<span class="w"> </span><span class="m">23</span><span class="o">)</span> <a id="__codelineno-0-16" name="__codelineno-0-16" href="#__codelineno-0-16"></a><span class="w"> </span><span class="o">(</span><span class="s1">&#39;E&#39;</span>,<span class="w"> </span><span class="m">23</span><span class="o">)</span>
</code></pre></div> </code></pre></div>
<p><strong>自适应性</strong><u>自适应排序</u>的时间复杂度会受输入数据的影响,即最佳时间复杂度、最差时间复杂度、平均时间复杂度并不完全相等。</p> <p><strong>自适应性</strong><u>自适应排序</u>能够利用输入数据已有的顺序信息来减少计算量,达到更优的时间效率。自适应排序算法的最佳时间复杂度通常优于平均时间复杂度。</p>
<p>自适应性需要根据具体情况来评估。如果最差时间复杂度差于平均时间复杂度,说明排序算法在某些数据下性能可能劣化,因此被视为负面属性;而如果最佳时间复杂度优于平均时间复杂度,则被视为正面属性。</p>
<p><strong>是否基于比较</strong><u>基于比较的排序</u>依赖比较运算符(<span class="arithmatex">\(&lt;\)</span><span class="arithmatex">\(=\)</span><span class="arithmatex">\(&gt;\)</span>)来判断元素的相对顺序,从而排序整个数组,理论最优时间复杂度为 <span class="arithmatex">\(O(n \log n)\)</span> 。而<u>非比较排序</u>不使用比较运算符,时间复杂度可达 <span class="arithmatex">\(O(n)\)</span> ,但其通用性相对较差。</p> <p><strong>是否基于比较</strong><u>基于比较的排序</u>依赖比较运算符(<span class="arithmatex">\(&lt;\)</span><span class="arithmatex">\(=\)</span><span class="arithmatex">\(&gt;\)</span>)来判断元素的相对顺序,从而排序整个数组,理论最优时间复杂度为 <span class="arithmatex">\(O(n \log n)\)</span> 。而<u>非比较排序</u>不使用比较运算符,时间复杂度可达 <span class="arithmatex">\(O(n)\)</span> ,但其通用性相对较差。</p>
<h2 id="1112">11.1.2 &nbsp; 理想排序算法<a class="headerlink" href="#1112" title="Permanent link">&para;</a></h2> <h2 id="1112">11.1.2 &nbsp; 理想排序算法<a class="headerlink" href="#1112" title="Permanent link">&para;</a></h2>
<p><strong>运行快、原地、稳定、正向自适应、通用性好</strong>。显然,迄今为止尚未发现兼具以上所有特性的排序算法。因此,在选择排序算法时,需要根据具体的数据特点和问题需求来决定。</p> <p><strong>运行快、原地、稳定、自适应、通用性好</strong>。显然,迄今为止尚未发现兼具以上所有特性的排序算法。因此,在选择排序算法时,需要根据具体的数据特点和问题需求来决定。</p>
<p>接下来,我们将共同学习各种排序算法,并基于上述评价维度对各个排序算法的优缺点进行分析。</p> <p>接下来,我们将共同学习各种排序算法,并基于上述评价维度对各个排序算法的优缺点进行分析。</p>
<!-- Source file information --> <!-- Source file information -->

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 58 KiB

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>
@ -3673,7 +3665,7 @@
<li>桶排序包含三个步骤:数据分桶、桶内排序和合并结果。它同样体现了分治策略,适用于数据体量很大的情况。桶排序的关键在于对数据进行平均分配。</li> <li>桶排序包含三个步骤:数据分桶、桶内排序和合并结果。它同样体现了分治策略,适用于数据体量很大的情况。桶排序的关键在于对数据进行平均分配。</li>
<li>计数排序是桶排序的一个特例,它通过统计数据出现的次数来实现排序。计数排序适用于数据量大但数据范围有限的情况,并且要求数据能够转换为正整数。</li> <li>计数排序是桶排序的一个特例,它通过统计数据出现的次数来实现排序。计数排序适用于数据量大但数据范围有限的情况,并且要求数据能够转换为正整数。</li>
<li>基数排序通过逐位排序来实现数据排序,要求数据能够表示为固定位数的数字。</li> <li>基数排序通过逐位排序来实现数据排序,要求数据能够表示为固定位数的数字。</li>
<li>总的来说,我们希望找到一种排序算法,具有高效率、稳定、原地以及正向自适应性等优点。然而,正如其他数据结构和算法一样,没有一种排序算法能够同时满足所有这些条件。在实际应用中,我们需要根据数据的特性来选择合适的排序算法。</li> <li>总的来说,我们希望找到一种排序算法,具有高效率、稳定、原地以及自适应性等优点。然而,正如其他数据结构和算法一样,没有一种排序算法能够同时满足所有这些条件。在实际应用中,我们需要根据数据的特性来选择合适的排序算法。</li>
<li>图 11-19 对比了主流排序算法的效率、稳定性、就地性和自适应性等。</li> <li>图 11-19 对比了主流排序算法的效率、稳定性、就地性和自适应性等。</li>
</ul> </ul>
<p><a class="glightbox" href="../summary.assets/sorting_algorithms_comparison.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="排序算法对比" class="animation-figure" src="../summary.assets/sorting_algorithms_comparison.png" /></a></p> <p><a class="glightbox" href="../summary.assets/sorting_algorithms_comparison.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="排序算法对比" class="animation-figure" src="../summary.assets/sorting_algorithms_comparison.png" /></a></p>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

View file

@ -1142,14 +1142,6 @@
4.4 &nbsp; 内存与缓存 * 4.4 &nbsp; 内存与缓存 *
</span> </span>
<span class="md-status md-status--new" title="最近添加">
</span>
</a> </a>
</li> </li>

Some files were not shown because too many files have changed in this diff Show more