mirror of
https://github.com/krahets/hello-algo.git
synced 2026-04-01 17:53:18 +08:00
deploy
This commit is contained in:
@@ -895,6 +895,8 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1119,12 +1121,40 @@
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../ram_and_cache/" class="md-nav__link">
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
4.4 内存与缓存 *
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
|
||||
<span class="md-status md-status--new" title="最近添加">
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../summary/" class="md-nav__link">
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
4.4 小结
|
||||
4.5 小结
|
||||
</span>
|
||||
|
||||
|
||||
@@ -3779,7 +3809,7 @@
|
||||
<div class="highlight"><span class="filename">array.swift</span><pre><span></span><code><a id="__codelineno-29-1" name="__codelineno-29-1" href="#__codelineno-29-1"></a><span class="cm">/* 在数组的索引 index 处插入元素 num */</span>
|
||||
<a id="__codelineno-29-2" name="__codelineno-29-2" href="#__codelineno-29-2"></a><span class="kd">func</span> <span class="nf">insert</span><span class="p">(</span><span class="n">nums</span><span class="p">:</span> <span class="kr">inout</span> <span class="p">[</span><span class="nb">Int</span><span class="p">],</span> <span class="n">num</span><span class="p">:</span> <span class="nb">Int</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="nb">Int</span><span class="p">)</span> <span class="p">{</span>
|
||||
<a id="__codelineno-29-3" name="__codelineno-29-3" href="#__codelineno-29-3"></a> <span class="c1">// 把索引 index 以及之后的所有元素向后移动一位</span>
|
||||
<a id="__codelineno-29-4" name="__codelineno-29-4" href="#__codelineno-29-4"></a> <span class="k">for</span> <span class="n">i</span> <span class="k">in</span> <span class="n">sequence</span><span class="p">(</span><span class="bp">first</span><span class="p">:</span> <span class="n">nums</span><span class="p">.</span><span class="bp">count</span> <span class="o">-</span> <span class="mi">1</span><span class="p">,</span> <span class="n">next</span><span class="p">:</span> <span class="p">{</span> <span class="nv">$0</span> <span class="o">></span> <span class="n">index</span> <span class="o">+</span> <span class="mi">1</span> <span class="p">?</span> <span class="nv">$0</span> <span class="o">-</span> <span class="mi">1</span> <span class="p">:</span> <span class="kc">nil</span> <span class="p">})</span> <span class="p">{</span>
|
||||
<a id="__codelineno-29-4" name="__codelineno-29-4" href="#__codelineno-29-4"></a> <span class="k">for</span> <span class="n">i</span> <span class="k">in</span> <span class="n">nums</span><span class="p">.</span><span class="bp">indices</span><span class="p">.</span><span class="bp">dropFirst</span><span class="p">(</span><span class="n">index</span><span class="p">).</span><span class="n">reversed</span><span class="p">()</span> <span class="p">{</span>
|
||||
<a id="__codelineno-29-5" name="__codelineno-29-5" href="#__codelineno-29-5"></a> <span class="n">nums</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="p">=</span> <span class="n">nums</span><span class="p">[</span><span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span>
|
||||
<a id="__codelineno-29-6" name="__codelineno-29-6" href="#__codelineno-29-6"></a> <span class="p">}</span>
|
||||
<a id="__codelineno-29-7" name="__codelineno-29-7" href="#__codelineno-29-7"></a> <span class="c1">// 将 num 赋给 index 处元素</span>
|
||||
@@ -3921,12 +3951,11 @@
|
||||
<div class="tabbed-block">
|
||||
<div class="highlight"><span class="filename">array.swift</span><pre><span></span><code><a id="__codelineno-41-1" name="__codelineno-41-1" href="#__codelineno-41-1"></a><span class="cm">/* 删除索引 index 处元素 */</span>
|
||||
<a id="__codelineno-41-2" name="__codelineno-41-2" href="#__codelineno-41-2"></a><span class="kd">func</span> <span class="nf">remove</span><span class="p">(</span><span class="n">nums</span><span class="p">:</span> <span class="kr">inout</span> <span class="p">[</span><span class="nb">Int</span><span class="p">],</span> <span class="n">index</span><span class="p">:</span> <span class="nb">Int</span><span class="p">)</span> <span class="p">{</span>
|
||||
<a id="__codelineno-41-3" name="__codelineno-41-3" href="#__codelineno-41-3"></a> <span class="kd">let</span> <span class="nv">count</span> <span class="p">=</span> <span class="n">nums</span><span class="p">.</span><span class="bp">count</span>
|
||||
<a id="__codelineno-41-4" name="__codelineno-41-4" href="#__codelineno-41-4"></a> <span class="c1">// 把索引 index 之后的所有元素向前移动一位</span>
|
||||
<a id="__codelineno-41-5" name="__codelineno-41-5" href="#__codelineno-41-5"></a> <span class="k">for</span> <span class="n">i</span> <span class="k">in</span> <span class="n">sequence</span><span class="p">(</span><span class="bp">first</span><span class="p">:</span> <span class="n">index</span><span class="p">,</span> <span class="n">next</span><span class="p">:</span> <span class="p">{</span> <span class="nv">$0</span> <span class="o"><</span> <span class="bp">count</span> <span class="o">-</span> <span class="mi">1</span> <span class="o">-</span> <span class="mi">1</span> <span class="p">?</span> <span class="nv">$0</span> <span class="o">+</span> <span class="mi">1</span> <span class="p">:</span> <span class="kc">nil</span> <span class="p">})</span> <span class="p">{</span>
|
||||
<a id="__codelineno-41-6" name="__codelineno-41-6" href="#__codelineno-41-6"></a> <span class="n">nums</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="p">=</span> <span class="n">nums</span><span class="p">[</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span>
|
||||
<a id="__codelineno-41-7" name="__codelineno-41-7" href="#__codelineno-41-7"></a> <span class="p">}</span>
|
||||
<a id="__codelineno-41-8" name="__codelineno-41-8" href="#__codelineno-41-8"></a><span class="p">}</span>
|
||||
<a id="__codelineno-41-3" name="__codelineno-41-3" href="#__codelineno-41-3"></a> <span class="c1">// 把索引 index 之后的所有元素向前移动一位</span>
|
||||
<a id="__codelineno-41-4" name="__codelineno-41-4" href="#__codelineno-41-4"></a> <span class="k">for</span> <span class="n">i</span> <span class="k">in</span> <span class="n">nums</span><span class="p">.</span><span class="bp">indices</span><span class="p">.</span><span class="bp">dropFirst</span><span class="p">(</span><span class="n">index</span><span class="p">).</span><span class="bp">dropLast</span><span class="p">()</span> <span class="p">{</span>
|
||||
<a id="__codelineno-41-5" name="__codelineno-41-5" href="#__codelineno-41-5"></a> <span class="n">nums</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="p">=</span> <span class="n">nums</span><span class="p">[</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span>
|
||||
<a id="__codelineno-41-6" name="__codelineno-41-6" href="#__codelineno-41-6"></a> <span class="p">}</span>
|
||||
<a id="__codelineno-41-7" name="__codelineno-41-7" href="#__codelineno-41-7"></a><span class="p">}</span>
|
||||
</code></pre></div>
|
||||
</div>
|
||||
<div class="tabbed-block">
|
||||
|
||||
@@ -895,6 +895,8 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1003,12 +1005,40 @@
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="ram_and_cache/" class="md-nav__link">
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
4.4 内存与缓存 *
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
|
||||
<span class="md-status md-status--new" title="最近添加">
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="summary/" class="md-nav__link">
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
4.4 小结
|
||||
4.5 小结
|
||||
</span>
|
||||
|
||||
|
||||
@@ -3302,7 +3332,8 @@
|
||||
<li><a href="https://www.hello-algo.com/chapter_array_and_linkedlist/array/">4.1 数组</a></li>
|
||||
<li><a href="https://www.hello-algo.com/chapter_array_and_linkedlist/linked_list/">4.2 链表</a></li>
|
||||
<li><a href="https://www.hello-algo.com/chapter_array_and_linkedlist/list/">4.3 列表</a></li>
|
||||
<li><a href="https://www.hello-algo.com/chapter_array_and_linkedlist/summary/">4.4 小结</a></li>
|
||||
<li><a href="https://www.hello-algo.com/chapter_array_and_linkedlist/ram_and_cache/">4.4 内存与缓存 *</a></li>
|
||||
<li><a href="https://www.hello-algo.com/chapter_array_and_linkedlist/summary/">4.5 小结</a></li>
|
||||
</ul>
|
||||
|
||||
<!-- Source file information -->
|
||||
|
||||
@@ -895,6 +895,8 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1112,12 +1114,40 @@
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../ram_and_cache/" class="md-nav__link">
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
4.4 内存与缓存 *
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
|
||||
<span class="md-status md-status--new" title="最近添加">
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../summary/" class="md-nav__link">
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
4.4 小结
|
||||
4.5 小结
|
||||
</span>
|
||||
|
||||
|
||||
@@ -4433,19 +4463,14 @@
|
||||
<td>分散内存空间</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>缓存局部性</td>
|
||||
<td>友好</td>
|
||||
<td>不友好</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>容量扩展</td>
|
||||
<td>长度不可变</td>
|
||||
<td>可灵活扩展</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>内存效率</td>
|
||||
<td>占用内存少、浪费部分空间</td>
|
||||
<td>占用内存多</td>
|
||||
<td>元素占用内存少、但可能浪费空间</td>
|
||||
<td>元素占用内存多</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>访问元素</td>
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
<link rel="prev" href="../linked_list/">
|
||||
|
||||
|
||||
<link rel="next" href="../summary/">
|
||||
<link rel="next" href="../ram_and_cache/">
|
||||
|
||||
|
||||
<link rel="icon" href="../../assets/images/favicon.png">
|
||||
@@ -895,6 +895,8 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1105,12 +1107,40 @@
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../ram_and_cache/" class="md-nav__link">
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
4.4 内存与缓存 *
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
|
||||
<span class="md-status md-status--new" title="最近添加">
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../summary/" class="md-nav__link">
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
4.4 小结
|
||||
4.5 小结
|
||||
</span>
|
||||
|
||||
|
||||
@@ -3499,7 +3529,7 @@
|
||||
<div class="tabbed-block">
|
||||
<div class="highlight"><span class="filename">list_test.go</span><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a><span class="cm">/* 初始化列表 */</span>
|
||||
<a id="__codelineno-4-2" name="__codelineno-4-2" href="#__codelineno-4-2"></a><span class="c1">// 无初始值</span>
|
||||
<a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a><span class="nx">nums1</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="p">[]</span><span class="kt">int</span>
|
||||
<a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a><span class="nx">nums1</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="p">[]</span><span class="kt">int</span><span class="p">{}</span>
|
||||
<a id="__codelineno-4-4" name="__codelineno-4-4" href="#__codelineno-4-4"></a><span class="c1">// 有初始值</span>
|
||||
<a id="__codelineno-4-5" name="__codelineno-4-5" href="#__codelineno-4-5"></a><span class="nx">nums</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="p">[]</span><span class="kt">int</span><span class="p">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">}</span>
|
||||
</code></pre></div>
|
||||
@@ -5449,9 +5479,9 @@ aria-label="页脚"
|
||||
|
||||
|
||||
<a
|
||||
href="../summary/"
|
||||
href="../ram_and_cache/"
|
||||
class="md-footer__link md-footer__link--next"
|
||||
aria-label="下一页: 4.4 &nbsp; 小结"
|
||||
aria-label="下一页: 4.4 &nbsp; 内存与缓存 *"
|
||||
rel="next"
|
||||
>
|
||||
<div class="md-footer__title">
|
||||
@@ -5459,7 +5489,7 @@ aria-label="页脚"
|
||||
下一页
|
||||
</span>
|
||||
<div class="md-ellipsis">
|
||||
4.4 小结
|
||||
4.4 内存与缓存 *
|
||||
</div>
|
||||
</div>
|
||||
<div class="md-footer__button md-icon">
|
||||
@@ -5568,13 +5598,13 @@ aria-label="页脚"
|
||||
|
||||
|
||||
|
||||
<a href="../summary/" class="md-footer__link md-footer__link--next" aria-label="下一页: 4.4 &nbsp; 小结" rel="next">
|
||||
<a href="../ram_and_cache/" class="md-footer__link md-footer__link--next" aria-label="下一页: 4.4 &nbsp; 内存与缓存 *" rel="next">
|
||||
<div class="md-footer__title">
|
||||
<span class="md-footer__direction">
|
||||
下一页
|
||||
</span>
|
||||
<div class="md-ellipsis">
|
||||
4.4 小结
|
||||
4.4 内存与缓存 *
|
||||
</div>
|
||||
</div>
|
||||
<div class="md-footer__button md-icon">
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 41 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 52 KiB |
3749
chapter_array_and_linkedlist/ram_and_cache/index.html
Normal file
3749
chapter_array_and_linkedlist/ram_and_cache/index.html
Normal file
File diff suppressed because it is too large
Load Diff
@@ -15,7 +15,7 @@
|
||||
<link rel="canonical" href="https://www.hello-algo.com/chapter_array_and_linkedlist/summary/">
|
||||
|
||||
|
||||
<link rel="prev" href="../list/">
|
||||
<link rel="prev" href="../ram_and_cache/">
|
||||
|
||||
|
||||
<link rel="next" href="../../chapter_stack_and_queue/">
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
|
||||
|
||||
<title>4.4 小结 - Hello 算法</title>
|
||||
<title>4.5 小结 - Hello 算法</title>
|
||||
|
||||
|
||||
|
||||
@@ -94,7 +94,7 @@
|
||||
<div data-md-component="skip">
|
||||
|
||||
|
||||
<a href="#44" class="md-skip">
|
||||
<a href="#45" class="md-skip">
|
||||
跳转至
|
||||
</a>
|
||||
|
||||
@@ -129,7 +129,7 @@
|
||||
<div class="md-header__topic" data-md-component="header-topic">
|
||||
<span class="md-ellipsis">
|
||||
|
||||
4.4 小结
|
||||
4.5 小结
|
||||
|
||||
</span>
|
||||
</div>
|
||||
@@ -895,6 +895,8 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1002,6 +1004,34 @@
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../ram_and_cache/" class="md-nav__link">
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
4.4 内存与缓存 *
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
|
||||
<span class="md-status md-status--new" title="最近添加">
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1017,7 +1047,7 @@
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
4.4 小结
|
||||
4.5 小结
|
||||
</span>
|
||||
|
||||
|
||||
@@ -1028,7 +1058,7 @@
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
4.4 小结
|
||||
4.5 小结
|
||||
</span>
|
||||
|
||||
|
||||
@@ -3351,7 +3381,7 @@
|
||||
|
||||
|
||||
<!-- Page content -->
|
||||
<h1 id="44">4.4 小结<a class="headerlink" href="#44" title="Permanent link">¶</a></h1>
|
||||
<h1 id="45">4.5 小结<a class="headerlink" href="#45" title="Permanent link">¶</a></h1>
|
||||
<h3 id="1">1. 重点回顾<a class="headerlink" href="#1" title="Permanent link">¶</a></h3>
|
||||
<ul>
|
||||
<li>数组和链表是两种基本的数据结构,分别代表数据在计算机内存中的两种存储方式:连续空间存储和分散空间存储。两者的特点呈现出互补的特性。</li>
|
||||
@@ -3360,6 +3390,9 @@
|
||||
<li>常见的链表类型包括单向链表、循环链表、双向链表,它们分别具有各自的应用场景。</li>
|
||||
<li>列表是一种支持增删查改的元素有序集合,通常基于动态数组实现,其保留了数组的优势,同时可以灵活调整长度。</li>
|
||||
<li>列表的出现大幅地提高了数组的实用性,但可能导致部分内存空间浪费。</li>
|
||||
<li>程序运行时,数据主要存储在内存中。数组提供更高的内存空间效率,而链表则在内存使用上更加灵活。</li>
|
||||
<li>缓存通过缓存行、预取机制以及空间和时间局部性等数据加载机制,为 CPU 提供快速数据访问,显著提升程序的执行效率。</li>
|
||||
<li>由于数组具有更高的缓存命中率,因此它通常比链表更高效。在选择数据结构时,应根据具体需求和场景做出恰当选择。</li>
|
||||
</ul>
|
||||
<h3 id="2-q-a">2. Q & A<a class="headerlink" href="#2-q-a" title="Permanent link">¶</a></h3>
|
||||
<div class="admonition question">
|
||||
@@ -3445,9 +3478,9 @@ aria-label="页脚"
|
||||
|
||||
|
||||
<a
|
||||
href="../list/"
|
||||
href="../ram_and_cache/"
|
||||
class="md-footer__link md-footer__link--prev"
|
||||
aria-label="上一页: 4.3 &nbsp; 列表"
|
||||
aria-label="上一页: 4.4 &nbsp; 内存与缓存 *"
|
||||
rel="prev"
|
||||
>
|
||||
<div class="md-footer__button md-icon">
|
||||
@@ -3459,7 +3492,7 @@ aria-label="页脚"
|
||||
上一页
|
||||
</span>
|
||||
<div class="md-ellipsis">
|
||||
4.3 列表
|
||||
4.4 内存与缓存 *
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
@@ -3571,7 +3604,7 @@ aria-label="页脚"
|
||||
<nav class="md-footer__inner md-grid" aria-label="页脚" >
|
||||
|
||||
|
||||
<a href="../list/" class="md-footer__link md-footer__link--prev" aria-label="上一页: 4.3 &nbsp; 列表" rel="prev">
|
||||
<a href="../ram_and_cache/" class="md-footer__link md-footer__link--prev" aria-label="上一页: 4.4 &nbsp; 内存与缓存 *" rel="prev">
|
||||
<div class="md-footer__button md-icon">
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
|
||||
@@ -3581,7 +3614,7 @@ aria-label="页脚"
|
||||
上一页
|
||||
</span>
|
||||
<div class="md-ellipsis">
|
||||
4.3 列表
|
||||
4.4 内存与缓存 *
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
Reference in New Issue
Block a user