This commit is contained in:
krahets
2026-04-04 23:10:58 +08:00
parent 5b59dbded2
commit fec71ace08
168 changed files with 308 additions and 963 deletions
File diff suppressed because one or more lines are too long
+1 -132
View File
@@ -4341,11 +4341,7 @@
<!-- Page content -->
<h1 id="163">16.3 &nbsp; 术语表<a class="headerlink" href="#163" title="Permanent link">&para;</a></h1>
<p>表 16-1 列出了书中出现的重要术语,值得注意以下几点</p>
<ul>
<li>建议记住名词的英文叫法,以便阅读英文文献。</li>
<li>部分名词在简体中文和繁体中文下的叫法不同。</li>
</ul>
<p>表 16-1 列出了书中出现的重要术语。建议记住各个名词的英文叫法,以便阅读英文文献</p>
<p align="center"> 表 16-1 &nbsp; 数据结构与算法的重要名词 </p>
<div class="center-table">
@@ -4354,639 +4350,512 @@
<tr>
<th>English</th>
<th>简体中文</th>
<th>繁体中文</th>
</tr>
</thead>
<tbody>
<tr>
<td>algorithm</td>
<td>算法</td>
<td>演算法</td>
</tr>
<tr>
<td>data structure</td>
<td>数据结构</td>
<td>資料結構</td>
</tr>
<tr>
<td>code</td>
<td>代码</td>
<td>程式碼</td>
</tr>
<tr>
<td>file</td>
<td>文件</td>
<td>檔案</td>
</tr>
<tr>
<td>function</td>
<td>函数</td>
<td>函式</td>
</tr>
<tr>
<td>method</td>
<td>方法</td>
<td>方法</td>
</tr>
<tr>
<td>variable</td>
<td>变量</td>
<td>變數</td>
</tr>
<tr>
<td>asymptotic complexity analysis</td>
<td>渐近复杂度分析</td>
<td>漸近複雜度分析</td>
</tr>
<tr>
<td>time complexity</td>
<td>时间复杂度</td>
<td>時間複雜度</td>
</tr>
<tr>
<td>space complexity</td>
<td>空间复杂度</td>
<td>空間複雜度</td>
</tr>
<tr>
<td>loop</td>
<td>循环</td>
<td>迴圈</td>
</tr>
<tr>
<td>iteration</td>
<td>迭代</td>
<td>迭代</td>
</tr>
<tr>
<td>recursion</td>
<td>递归</td>
<td>遞迴</td>
</tr>
<tr>
<td>tail recursion</td>
<td>尾递归</td>
<td>尾遞迴</td>
</tr>
<tr>
<td>recursion tree</td>
<td>递归树</td>
<td>遞迴樹</td>
</tr>
<tr>
<td>big-<span class="arithmatex">\(O\)</span> notation</td>
<td><span class="arithmatex">\(O\)</span> 记号</td>
<td><span class="arithmatex">\(O\)</span> 記號</td>
</tr>
<tr>
<td>asymptotic upper bound</td>
<td>渐近上界</td>
<td>漸近上界</td>
</tr>
<tr>
<td>sign-magnitude</td>
<td>原码</td>
<td>原碼</td>
</tr>
<tr>
<td>1s complement</td>
<td>反码</td>
<td>一補數</td>
</tr>
<tr>
<td>2s complement</td>
<td>补码</td>
<td>二補數</td>
</tr>
<tr>
<td>array</td>
<td>数组</td>
<td>陣列</td>
</tr>
<tr>
<td>index</td>
<td>索引</td>
<td>索引</td>
</tr>
<tr>
<td>linked list</td>
<td>链表</td>
<td>鏈結串列</td>
</tr>
<tr>
<td>linked list node, list node</td>
<td>链表节点</td>
<td>鏈結串列節點</td>
</tr>
<tr>
<td>head node</td>
<td>头节点</td>
<td>頭節點</td>
</tr>
<tr>
<td>tail node</td>
<td>尾节点</td>
<td>尾節點</td>
</tr>
<tr>
<td>list</td>
<td>列表</td>
<td>串列</td>
</tr>
<tr>
<td>dynamic array</td>
<td>动态数组</td>
<td>動態陣列</td>
</tr>
<tr>
<td>hard disk</td>
<td>硬盘</td>
<td>硬碟</td>
</tr>
<tr>
<td>random-access memory (RAM)</td>
<td>内存</td>
<td>記憶體</td>
</tr>
<tr>
<td>cache memory</td>
<td>缓存</td>
<td>快取</td>
</tr>
<tr>
<td>cache miss</td>
<td>缓存未命中</td>
<td>快取未命中</td>
</tr>
<tr>
<td>cache hit rate</td>
<td>缓存命中率</td>
<td>快取命中率</td>
</tr>
<tr>
<td>stack</td>
<td></td>
<td>堆疊</td>
</tr>
<tr>
<td>top of the stack</td>
<td>栈顶</td>
<td>堆疊頂</td>
</tr>
<tr>
<td>bottom of the stack</td>
<td>栈底</td>
<td>堆疊底</td>
</tr>
<tr>
<td>queue</td>
<td>队列</td>
<td>佇列</td>
</tr>
<tr>
<td>double-ended queue</td>
<td>双向队列</td>
<td>雙向佇列</td>
</tr>
<tr>
<td>front of the queue</td>
<td>队首</td>
<td>佇列首</td>
</tr>
<tr>
<td>rear of the queue</td>
<td>队尾</td>
<td>佇列尾</td>
</tr>
<tr>
<td>hash table</td>
<td>哈希表</td>
<td>雜湊表</td>
</tr>
<tr>
<td>hash set</td>
<td>哈希集合</td>
<td>雜湊集合</td>
</tr>
<tr>
<td>bucket</td>
<td></td>
<td></td>
</tr>
<tr>
<td>hash function</td>
<td>哈希函数</td>
<td>雜湊函式</td>
</tr>
<tr>
<td>hash collision</td>
<td>哈希冲突</td>
<td>雜湊衝突</td>
</tr>
<tr>
<td>load factor</td>
<td>负载因子</td>
<td>負載因子</td>
</tr>
<tr>
<td>separate chaining</td>
<td>链式地址</td>
<td>鏈結位址</td>
</tr>
<tr>
<td>open addressing</td>
<td>开放寻址</td>
<td>開放定址</td>
</tr>
<tr>
<td>linear probing</td>
<td>线性探测</td>
<td>線性探查</td>
</tr>
<tr>
<td>lazy deletion</td>
<td>懒删除</td>
<td>懶刪除</td>
</tr>
<tr>
<td>binary tree</td>
<td>二叉树</td>
<td>二元樹</td>
</tr>
<tr>
<td>tree node</td>
<td>树节点</td>
<td>樹節點</td>
</tr>
<tr>
<td>left-child node</td>
<td>左子节点</td>
<td>左子節點</td>
</tr>
<tr>
<td>right-child node</td>
<td>右子节点</td>
<td>右子節點</td>
</tr>
<tr>
<td>parent node</td>
<td>父节点</td>
<td>父節點</td>
</tr>
<tr>
<td>left subtree</td>
<td>左子树</td>
<td>左子樹</td>
</tr>
<tr>
<td>right subtree</td>
<td>右子树</td>
<td>右子樹</td>
</tr>
<tr>
<td>root node</td>
<td>根节点</td>
<td>根節點</td>
</tr>
<tr>
<td>leaf node</td>
<td>叶节点</td>
<td>葉節點</td>
</tr>
<tr>
<td>edge</td>
<td></td>
<td></td>
</tr>
<tr>
<td>level</td>
<td></td>
<td></td>
</tr>
<tr>
<td>degree</td>
<td></td>
<td></td>
</tr>
<tr>
<td>height</td>
<td>高度</td>
<td>高度</td>
</tr>
<tr>
<td>depth</td>
<td>深度</td>
<td>深度</td>
</tr>
<tr>
<td>perfect binary tree</td>
<td>完美二叉树</td>
<td>完美二元樹</td>
</tr>
<tr>
<td>complete binary tree</td>
<td>完全二叉树</td>
<td>完全二元樹</td>
</tr>
<tr>
<td>full binary tree</td>
<td>完满二叉树</td>
<td>完滿二元樹</td>
</tr>
<tr>
<td>balanced binary tree</td>
<td>平衡二叉树</td>
<td>平衡二元樹</td>
</tr>
<tr>
<td>binary search tree</td>
<td>二叉搜索树</td>
<td>二元搜尋樹</td>
</tr>
<tr>
<td>AVL tree</td>
<td>AVL 树</td>
<td>AVL 樹</td>
</tr>
<tr>
<td>red-black tree</td>
<td>红黑树</td>
<td>紅黑樹</td>
</tr>
<tr>
<td>level-order traversal</td>
<td>层序遍历</td>
<td>層序走訪</td>
</tr>
<tr>
<td>breadth-first traversal</td>
<td>广度优先遍历</td>
<td>廣度優先走訪</td>
</tr>
<tr>
<td>depth-first traversal</td>
<td>深度优先遍历</td>
<td>深度優先走訪</td>
</tr>
<tr>
<td>binary search tree</td>
<td>二叉搜索树</td>
<td>二元搜尋樹</td>
</tr>
<tr>
<td>balanced binary search tree</td>
<td>平衡二叉搜索树</td>
<td>平衡二元搜尋樹</td>
</tr>
<tr>
<td>balance factor</td>
<td>平衡因子</td>
<td>平衡因子</td>
</tr>
<tr>
<td>heap</td>
<td></td>
<td>堆積</td>
</tr>
<tr>
<td>max heap</td>
<td>大顶堆</td>
<td>大頂堆積</td>
</tr>
<tr>
<td>min heap</td>
<td>小顶堆</td>
<td>小頂堆積</td>
</tr>
<tr>
<td>priority queue</td>
<td>优先队列</td>
<td>優先佇列</td>
</tr>
<tr>
<td>heapify</td>
<td>堆化</td>
<td>堆積化</td>
</tr>
<tr>
<td>top-<span class="arithmatex">\(k\)</span> problem</td>
<td>Top-<span class="arithmatex">\(k\)</span> 问题</td>
<td>Top-<span class="arithmatex">\(k\)</span> 問題</td>
</tr>
<tr>
<td>graph</td>
<td></td>
<td></td>
</tr>
<tr>
<td>vertex</td>
<td>顶点</td>
<td>頂點</td>
</tr>
<tr>
<td>undirected graph</td>
<td>无向图</td>
<td>無向圖</td>
</tr>
<tr>
<td>directed graph</td>
<td>有向图</td>
<td>有向圖</td>
</tr>
<tr>
<td>connected graph</td>
<td>连通图</td>
<td>連通圖</td>
</tr>
<tr>
<td>disconnected graph</td>
<td>非连通图</td>
<td>非連通圖</td>
</tr>
<tr>
<td>weighted graph</td>
<td>有权图</td>
<td>有權圖</td>
</tr>
<tr>
<td>adjacency</td>
<td>邻接</td>
<td>鄰接</td>
</tr>
<tr>
<td>path</td>
<td>路径</td>
<td>路徑</td>
</tr>
<tr>
<td>in-degree</td>
<td>入度</td>
<td>入度</td>
</tr>
<tr>
<td>out-degree</td>
<td>出度</td>
<td>出度</td>
</tr>
<tr>
<td>adjacency matrix</td>
<td>邻接矩阵</td>
<td>鄰接矩陣</td>
</tr>
<tr>
<td>adjacency list</td>
<td>邻接表</td>
<td>鄰接表</td>
</tr>
<tr>
<td>breadth-first search</td>
<td>广度优先搜索</td>
<td>廣度優先搜尋</td>
</tr>
<tr>
<td>depth-first search</td>
<td>深度优先搜索</td>
<td>深度優先搜尋</td>
</tr>
<tr>
<td>binary search</td>
<td>二分查找</td>
<td>二分搜尋</td>
</tr>
<tr>
<td>searching algorithm</td>
<td>搜索算法</td>
<td>搜尋演算法</td>
</tr>
<tr>
<td>sorting algorithm</td>
<td>排序算法</td>
<td>排序演算法</td>
</tr>
<tr>
<td>selection sort</td>
<td>选择排序</td>
<td>選擇排序</td>
</tr>
<tr>
<td>bubble sort</td>
<td>冒泡排序</td>
<td>泡沫排序</td>
</tr>
<tr>
<td>insertion sort</td>
<td>插入排序</td>
<td>插入排序</td>
</tr>
<tr>
<td>quick sort</td>
<td>快速排序</td>
<td>快速排序</td>
</tr>
<tr>
<td>merge sort</td>
<td>归并排序</td>
<td>合併排序</td>
</tr>
<tr>
<td>heap sort</td>
<td>堆排序</td>
<td>堆積排序</td>
</tr>
<tr>
<td>bucket sort</td>
<td>桶排序</td>
<td>桶排序</td>
</tr>
<tr>
<td>counting sort</td>
<td>计数排序</td>
<td>計數排序</td>
</tr>
<tr>
<td>radix sort</td>
<td>基数排序</td>
<td>基數排序</td>
</tr>
<tr>
<td>divide and conquer</td>
<td>分治</td>
<td>分治</td>
</tr>
<tr>
<td>hanota problem</td>
<td>汉诺塔问题</td>
<td>河內塔問題</td>
</tr>
<tr>
<td>backtracking algorithm</td>
<td>回溯算法</td>
<td>回溯演算法</td>
</tr>
<tr>
<td>constraint</td>
<td>约束</td>
<td>約束</td>
</tr>
<tr>
<td>solution</td>
<td></td>
<td></td>
</tr>
<tr>
<td>state</td>
<td>状态</td>
<td>狀態</td>
</tr>
<tr>
<td>pruning</td>
<td>剪枝</td>
<td>剪枝</td>
</tr>
<tr>
<td>permutations problem</td>
<td>全排列问题</td>
<td>全排列問題</td>
</tr>
<tr>
<td>subset-sum problem</td>
<td>子集和问题</td>
<td>子集合問題</td>
</tr>
<tr>
<td><span class="arithmatex">\(n\)</span>-queens problem</td>
<td><span class="arithmatex">\(n\)</span> 皇后问题</td>
<td><span class="arithmatex">\(n\)</span> 皇后問題</td>
</tr>
<tr>
<td>dynamic programming</td>
<td>动态规划</td>
<td>動態規劃</td>
</tr>
<tr>
<td>initial state</td>
<td>初始状态</td>
<td>初始狀態</td>
</tr>
<tr>
<td>state-transition equation</td>
<td>状态转移方程</td>
<td>狀態轉移方程</td>
</tr>
<tr>
<td>knapsack problem</td>
<td>背包问题</td>
<td>背包問題</td>
</tr>
<tr>
<td>edit distance problem</td>
<td>编辑距离问题</td>
<td>編輯距離問題</td>
</tr>
<tr>
<td>greedy algorithm</td>
<td>贪心算法</td>
<td>貪婪演算法</td>
</tr>
</tbody>
</table>
@@ -5327,8 +5327,8 @@
<p>设输入数据大小为 <span class="arithmatex">\(n\)</span> ,图 2-16 展示了常见的空间复杂度类型(从低到高排列)。</p>
<div class="arithmatex">\[
\begin{aligned}
O(1) &lt; O(\log n) &lt; O(n) &lt; O(n^2) &lt; O(2^n) \newline
\text{常数阶} &lt; \text{对数阶} &lt; \text{线性阶} &lt; \text{平方阶} &lt; \text{指数阶}
&amp; O(1) &lt; O(\log n) &lt; O(n) &lt; O(n^2) &lt; O(2^n) \newline
&amp; \text{常数阶} &lt; \text{对数阶} &lt; \text{线性阶} &lt; \text{平方阶} &lt; \text{指数阶}
\end{aligned}
\]</div>
<p><img alt="常见的空间复杂度类型" class="animation-figure" src="../space_complexity.assets/space_complexity_common_types.png" /></p>
@@ -5621,8 +5621,8 @@ T(n) &amp; = n^2 + n &amp; \text{偷懒统计 (o.O)}
<p>设输入数据大小为 <span class="arithmatex">\(n\)</span> ,常见的时间复杂度类型如图 2-9 所示(按照从低到高的顺序排列)。</p>
<div class="arithmatex">\[
\begin{aligned}
O(1) &lt; O(\log n) &lt; O(n) &lt; O(n \log n) &lt; O(n^2) &lt; O(2^n) &lt; O(n!) \newline
\text{常数阶} &lt; \text{对数阶} &lt; \text{线性阶} &lt; \text{线性对数阶} &lt; \text{平方阶} &lt; \text{指数阶} &lt; \text{阶乘阶}
&amp; O(1) &lt; O(\log n) &lt; O(n) &lt; O(n \log n) &lt; O(n^2) &lt; O(2^n) &lt; O(n!) \newline
&amp; \text{常数阶} &lt; \text{对数阶} &lt; \text{线性阶} &lt; \text{线性对数阶} &lt; \text{平方阶} &lt; \text{指数阶} &lt; \text{阶乘阶}
\end{aligned}
\]</div>
<p><img alt="常见的时间复杂度类型" class="animation-figure" src="../time_complexity.assets/time_complexity_common_types.png" /></p>
+2 -2
View File
@@ -1586,7 +1586,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1608,7 +1608,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+3 -261
View File
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -4267,11 +4267,7 @@
<!-- Page content -->
<h1 id="163-glossary">16.3 &nbsp; Glossary<a class="headerlink" href="#163-glossary" title="Permanent link">&para;</a></h1>
<p>The following table lists important terms that appear in this book. It is worth noting the following points:</p>
<ul>
<li>We recommend remembering the English terms to help with reading English-language literature.</li>
<li>Some terms have different names in Simplified Chinese and Traditional Chinese.</li>
</ul>
<p>The following table lists important terms that appear in this book.</p>
<p align="center"> Table 16-1 &nbsp; Important Terms in Data Structures and Algorithms </p>
<div class="center-table">
@@ -4279,640 +4275,386 @@
<thead>
<tr>
<th>English</th>
<th>Simplified Chinese</th>
<th>Traditional Chinese</th>
</tr>
</thead>
<tbody>
<tr>
<td>algorithm</td>
<td>算法</td>
<td>演算法</td>
</tr>
<tr>
<td>data structure</td>
<td>数据结构</td>
<td>資料結構</td>
</tr>
<tr>
<td>code</td>
<td>代码</td>
<td>程式碼</td>
</tr>
<tr>
<td>file</td>
<td>文件</td>
<td>檔案</td>
</tr>
<tr>
<td>function</td>
<td>函数</td>
<td>函式</td>
</tr>
<tr>
<td>method</td>
<td>方法</td>
<td>方法</td>
</tr>
<tr>
<td>variable</td>
<td>变量</td>
<td>變數</td>
</tr>
<tr>
<td>asymptotic complexity analysis</td>
<td>渐近复杂度分析</td>
<td>漸近複雜度分析</td>
</tr>
<tr>
<td>time complexity</td>
<td>时间复杂度</td>
<td>時間複雜度</td>
</tr>
<tr>
<td>space complexity</td>
<td>空间复杂度</td>
<td>空間複雜度</td>
</tr>
<tr>
<td>loop</td>
<td>循环</td>
<td>迴圈</td>
</tr>
<tr>
<td>iteration</td>
<td>迭代</td>
<td>迭代</td>
</tr>
<tr>
<td>recursion</td>
<td>递归</td>
<td>遞迴</td>
</tr>
<tr>
<td>tail recursion</td>
<td>尾递归</td>
<td>尾遞迴</td>
</tr>
<tr>
<td>recursion tree</td>
<td>递归树</td>
<td>遞迴樹</td>
</tr>
<tr>
<td>big-<span class="arithmatex">\(O\)</span> notation</td>
<td><span class="arithmatex">\(O\)</span> 记号</td>
<td><span class="arithmatex">\(O\)</span> 記號</td>
</tr>
<tr>
<td>asymptotic upper bound</td>
<td>渐近上界</td>
<td>漸近上界</td>
</tr>
<tr>
<td>sign-magnitude</td>
<td>原码</td>
<td>原碼</td>
</tr>
<tr>
<td>1s complement</td>
<td>反码</td>
<td>一補數</td>
</tr>
<tr>
<td>2s complement</td>
<td>补码</td>
<td>二補數</td>
</tr>
<tr>
<td>array</td>
<td>数组</td>
<td>陣列</td>
</tr>
<tr>
<td>index</td>
<td>索引</td>
<td>索引</td>
</tr>
<tr>
<td>linked list</td>
<td>链表</td>
<td>鏈結串列</td>
</tr>
<tr>
<td>linked list node, list node</td>
<td>链表节点</td>
<td>鏈結串列節點</td>
</tr>
<tr>
<td>head node</td>
<td>头节点</td>
<td>頭節點</td>
</tr>
<tr>
<td>tail node</td>
<td>尾节点</td>
<td>尾節點</td>
</tr>
<tr>
<td>list</td>
<td>列表</td>
<td>串列</td>
</tr>
<tr>
<td>dynamic array</td>
<td>动态数组</td>
<td>動態陣列</td>
</tr>
<tr>
<td>hard disk</td>
<td>硬盘</td>
<td>硬碟</td>
</tr>
<tr>
<td>random-access memory (RAM)</td>
<td>内存</td>
<td>記憶體</td>
</tr>
<tr>
<td>cache memory</td>
<td>缓存</td>
<td>快取</td>
</tr>
<tr>
<td>cache miss</td>
<td>缓存未命中</td>
<td>快取未命中</td>
</tr>
<tr>
<td>cache hit rate</td>
<td>缓存命中率</td>
<td>快取命中率</td>
</tr>
<tr>
<td>stack</td>
<td></td>
<td>堆疊</td>
</tr>
<tr>
<td>top of the stack</td>
<td>栈顶</td>
<td>堆疊頂</td>
</tr>
<tr>
<td>bottom of the stack</td>
<td>栈底</td>
<td>堆疊底</td>
</tr>
<tr>
<td>queue</td>
<td>队列</td>
<td>佇列</td>
</tr>
<tr>
<td>double-ended queue</td>
<td>双向队列</td>
<td>雙向佇列</td>
</tr>
<tr>
<td>front of the queue</td>
<td>队首</td>
<td>佇列首</td>
</tr>
<tr>
<td>rear of the queue</td>
<td>队尾</td>
<td>佇列尾</td>
</tr>
<tr>
<td>hash table</td>
<td>哈希表</td>
<td>雜湊表</td>
</tr>
<tr>
<td>hash set</td>
<td>哈希集合</td>
<td>雜湊集合</td>
</tr>
<tr>
<td>bucket</td>
<td></td>
<td></td>
</tr>
<tr>
<td>hash function</td>
<td>哈希函数</td>
<td>雜湊函式</td>
</tr>
<tr>
<td>hash collision</td>
<td>哈希冲突</td>
<td>雜湊衝突</td>
</tr>
<tr>
<td>load factor</td>
<td>负载因子</td>
<td>負載因子</td>
</tr>
<tr>
<td>separate chaining</td>
<td>链式地址</td>
<td>鏈結位址</td>
</tr>
<tr>
<td>open addressing</td>
<td>开放寻址</td>
<td>開放定址</td>
</tr>
<tr>
<td>linear probing</td>
<td>线性探测</td>
<td>線性探查</td>
</tr>
<tr>
<td>lazy deletion</td>
<td>懒删除</td>
<td>懶刪除</td>
</tr>
<tr>
<td>binary tree</td>
<td>二叉树</td>
<td>二元樹</td>
</tr>
<tr>
<td>tree node</td>
<td>树节点</td>
<td>樹節點</td>
</tr>
<tr>
<td>left-child node</td>
<td>左子节点</td>
<td>左子節點</td>
</tr>
<tr>
<td>right-child node</td>
<td>右子节点</td>
<td>右子節點</td>
</tr>
<tr>
<td>parent node</td>
<td>父节点</td>
<td>父節點</td>
</tr>
<tr>
<td>left subtree</td>
<td>左子树</td>
<td>左子樹</td>
</tr>
<tr>
<td>right subtree</td>
<td>右子树</td>
<td>右子樹</td>
</tr>
<tr>
<td>root node</td>
<td>根节点</td>
<td>根節點</td>
</tr>
<tr>
<td>leaf node</td>
<td>叶节点</td>
<td>葉節點</td>
</tr>
<tr>
<td>edge</td>
<td></td>
<td></td>
</tr>
<tr>
<td>level</td>
<td></td>
<td></td>
</tr>
<tr>
<td>degree</td>
<td></td>
<td></td>
</tr>
<tr>
<td>height</td>
<td>高度</td>
<td>高度</td>
</tr>
<tr>
<td>depth</td>
<td>深度</td>
<td>深度</td>
</tr>
<tr>
<td>perfect binary tree</td>
<td>完美二叉树</td>
<td>完美二元樹</td>
</tr>
<tr>
<td>complete binary tree</td>
<td>完全二叉树</td>
<td>完全二元樹</td>
</tr>
<tr>
<td>full binary tree</td>
<td>完满二叉树</td>
<td>完滿二元樹</td>
</tr>
<tr>
<td>balanced binary tree</td>
<td>平衡二叉树</td>
<td>平衡二元樹</td>
</tr>
<tr>
<td>binary search tree</td>
<td>二叉搜索树</td>
<td>二元搜尋樹</td>
</tr>
<tr>
<td>AVL tree</td>
<td>AVL 树</td>
<td>AVL 樹</td>
</tr>
<tr>
<td>red-black tree</td>
<td>红黑树</td>
<td>紅黑樹</td>
</tr>
<tr>
<td>level-order traversal</td>
<td>层序遍历</td>
<td>層序走訪</td>
</tr>
<tr>
<td>breadth-first traversal</td>
<td>广度优先遍历</td>
<td>廣度優先走訪</td>
</tr>
<tr>
<td>depth-first traversal</td>
<td>深度优先遍历</td>
<td>深度優先走訪</td>
</tr>
<tr>
<td>binary search tree</td>
<td>二叉搜索树</td>
<td>二元搜尋樹</td>
</tr>
<tr>
<td>balanced binary search tree</td>
<td>平衡二叉搜索树</td>
<td>平衡二元搜尋樹</td>
</tr>
<tr>
<td>balance factor</td>
<td>平衡因子</td>
<td>平衡因子</td>
</tr>
<tr>
<td>heap</td>
<td></td>
<td>堆積</td>
</tr>
<tr>
<td>max heap</td>
<td>大顶堆</td>
<td>大頂堆積</td>
</tr>
<tr>
<td>min heap</td>
<td>小顶堆</td>
<td>小頂堆積</td>
</tr>
<tr>
<td>priority queue</td>
<td>优先队列</td>
<td>優先佇列</td>
</tr>
<tr>
<td>heapify</td>
<td>堆化</td>
<td>堆積化</td>
</tr>
<tr>
<td>top-<span class="arithmatex">\(k\)</span> problem</td>
<td>Top-<span class="arithmatex">\(k\)</span> 问题</td>
<td>Top-<span class="arithmatex">\(k\)</span> 問題</td>
</tr>
<tr>
<td>graph</td>
<td></td>
<td></td>
</tr>
<tr>
<td>vertex</td>
<td>顶点</td>
<td>頂點</td>
</tr>
<tr>
<td>undirected graph</td>
<td>无向图</td>
<td>無向圖</td>
</tr>
<tr>
<td>directed graph</td>
<td>有向图</td>
<td>有向圖</td>
</tr>
<tr>
<td>connected graph</td>
<td>连通图</td>
<td>連通圖</td>
</tr>
<tr>
<td>disconnected graph</td>
<td>非连通图</td>
<td>非連通圖</td>
</tr>
<tr>
<td>weighted graph</td>
<td>有权图</td>
<td>有權圖</td>
</tr>
<tr>
<td>adjacency</td>
<td>邻接</td>
<td>鄰接</td>
</tr>
<tr>
<td>path</td>
<td>路径</td>
<td>路徑</td>
</tr>
<tr>
<td>in-degree</td>
<td>入度</td>
<td>入度</td>
</tr>
<tr>
<td>out-degree</td>
<td>出度</td>
<td>出度</td>
</tr>
<tr>
<td>adjacency matrix</td>
<td>邻接矩阵</td>
<td>鄰接矩陣</td>
</tr>
<tr>
<td>adjacency list</td>
<td>邻接表</td>
<td>鄰接表</td>
</tr>
<tr>
<td>breadth-first search</td>
<td>广度优先搜索</td>
<td>廣度優先搜尋</td>
</tr>
<tr>
<td>depth-first search</td>
<td>深度优先搜索</td>
<td>深度優先搜尋</td>
</tr>
<tr>
<td>binary search</td>
<td>二分查找</td>
<td>二分搜尋</td>
</tr>
<tr>
<td>searching algorithm</td>
<td>搜索算法</td>
<td>搜尋演算法</td>
</tr>
<tr>
<td>sorting algorithm</td>
<td>排序算法</td>
<td>排序演算法</td>
</tr>
<tr>
<td>selection sort</td>
<td>选择排序</td>
<td>選擇排序</td>
</tr>
<tr>
<td>bubble sort</td>
<td>冒泡排序</td>
<td>泡沫排序</td>
</tr>
<tr>
<td>insertion sort</td>
<td>插入排序</td>
<td>插入排序</td>
</tr>
<tr>
<td>quick sort</td>
<td>快速排序</td>
<td>快速排序</td>
</tr>
<tr>
<td>merge sort</td>
<td>归并排序</td>
<td>合併排序</td>
</tr>
<tr>
<td>heap sort</td>
<td>堆排序</td>
<td>堆積排序</td>
</tr>
<tr>
<td>bucket sort</td>
<td>桶排序</td>
<td>桶排序</td>
</tr>
<tr>
<td>counting sort</td>
<td>计数排序</td>
<td>計數排序</td>
</tr>
<tr>
<td>radix sort</td>
<td>基数排序</td>
<td>基數排序</td>
</tr>
<tr>
<td>divide and conquer</td>
<td>分治</td>
<td>分治</td>
</tr>
<tr>
<td>hanota problem</td>
<td>汉诺塔问题</td>
<td>河內塔問題</td>
</tr>
<tr>
<td>backtracking algorithm</td>
<td>回溯算法</td>
<td>回溯演算法</td>
</tr>
<tr>
<td>constraint</td>
<td>约束</td>
<td>約束</td>
</tr>
<tr>
<td>solution</td>
<td></td>
<td></td>
</tr>
<tr>
<td>state</td>
<td>状态</td>
<td>狀態</td>
</tr>
<tr>
<td>pruning</td>
<td>剪枝</td>
<td>剪枝</td>
</tr>
<tr>
<td>permutations problem</td>
<td>全排列问题</td>
<td>全排列問題</td>
</tr>
<tr>
<td>subset-sum problem</td>
<td>子集和问题</td>
<td>子集合問題</td>
</tr>
<tr>
<td><span class="arithmatex">\(n\)</span>-queens problem</td>
<td><span class="arithmatex">\(n\)</span> 皇后问题</td>
<td><span class="arithmatex">\(n\)</span> 皇后問題</td>
</tr>
<tr>
<td>dynamic programming</td>
<td>动态规划</td>
<td>動態規劃</td>
</tr>
<tr>
<td>initial state</td>
<td>初始状态</td>
<td>初始狀態</td>
</tr>
<tr>
<td>state-transition equation</td>
<td>状态转移方程</td>
<td>狀態轉移方程</td>
</tr>
<tr>
<td>knapsack problem</td>
<td>背包问题</td>
<td>背包問題</td>
</tr>
<tr>
<td>edit distance problem</td>
<td>编辑距离问题</td>
<td>編輯距離問題</td>
</tr>
<tr>
<td>greedy algorithm</td>
<td>贪心算法</td>
<td>貪婪演算法</td>
</tr>
</tbody>
</table>
@@ -1759,7 +1759,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1781,7 +1781,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1595,7 +1595,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1617,7 +1617,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1748,7 +1748,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1770,7 +1770,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1737,7 +1737,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1759,7 +1759,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1676,7 +1676,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1698,7 +1698,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1665,7 +1665,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1687,7 +1687,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1595,7 +1595,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1617,7 +1617,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1754,7 +1754,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1776,7 +1776,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1665,7 +1665,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1687,7 +1687,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1748,7 +1748,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1770,7 +1770,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -5253,8 +5253,8 @@
<p>Let the input data size be <span class="arithmatex">\(n\)</span>. The following figure shows common types of space complexity (arranged from low to high).</p>
<div class="arithmatex">\[
\begin{aligned}
O(1) &lt; O(\log n) &lt; O(n) &lt; O(n^2) &lt; O(2^n) \newline
\text{Constant} &lt; \text{Logarithmic} &lt; \text{Linear} &lt; \text{Quadratic} &lt; \text{Exponential}
&amp; O(1) &lt; O(\log n) &lt; O(n) &lt; O(n^2) &lt; O(2^n) \newline
&amp; \text{Constant} &lt; \text{Logarithmic} &lt; \text{Linear} &lt; \text{Quadratic} &lt; \text{Exponential}
\end{aligned}
\]</div>
<p><img alt="Common types of space complexity" class="animation-figure" src="../space_complexity.assets/space_complexity_common_types.png" /></p>
@@ -1665,7 +1665,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1687,7 +1687,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1809,7 +1809,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1831,7 +1831,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -5547,8 +5547,8 @@ T(n) &amp; = n^2 + n &amp; \text{Simplified count (o.O)}
<p>Let the input data size be <span class="arithmatex">\(n\)</span>. Common time complexity types are shown in Figure 2-9 (arranged in order from low to high).</p>
<div class="arithmatex">\[
\begin{aligned}
O(1) &lt; O(\log n) &lt; O(n) &lt; O(n \log n) &lt; O(n^2) &lt; O(2^n) &lt; O(n!) \newline
\text{Constant} &lt; \text{Logarithmic} &lt; \text{Linear} &lt; \text{Linearithmic} &lt; \text{Quadratic} &lt; \text{Exponential} &lt; \text{Factorial}
&amp; O(1) &lt; O(\log n) &lt; O(n) &lt; O(n \log n) &lt; O(n^2) &lt; O(2^n) &lt; O(n!) \newline
&amp; \text{Constant} &lt; \text{Logarithmic} &lt; \text{Linear} &lt; \text{Linearithmic} &lt; \text{Quadratic} &lt; \text{Exponential} &lt; \text{Factorial}
\end{aligned}
\]</div>
<p><img alt="Common time complexity types" class="animation-figure" src="../time_complexity.assets/time_complexity_common_types.png" /></p>
@@ -1605,7 +1605,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1627,7 +1627,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1149,7 +1149,7 @@
<a href="#341-ascii-character-set" class="md-nav__link">
<span class="md-ellipsis">
3.4.1 &nbsp; Ascii Character Set
3.4.1 &nbsp; ASCII Character Set
</span>
</a>
@@ -1160,7 +1160,7 @@
<a href="#342-gbk-character-set" class="md-nav__link">
<span class="md-ellipsis">
3.4.2 &nbsp; Gbk Character Set
3.4.2 &nbsp; GBK Character Set
</span>
</a>
@@ -1182,7 +1182,7 @@
<a href="#344-utf-8-encoding" class="md-nav__link">
<span class="md-ellipsis">
3.4.4 &nbsp; Utf-8 Encoding
3.4.4 &nbsp; UTF-8 Encoding
</span>
</a>
@@ -1698,7 +1698,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1720,7 +1720,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -4334,7 +4334,7 @@
<a href="#341-ascii-character-set" class="md-nav__link">
<span class="md-ellipsis">
3.4.1 &nbsp; Ascii Character Set
3.4.1 &nbsp; ASCII Character Set
</span>
</a>
@@ -4345,7 +4345,7 @@
<a href="#342-gbk-character-set" class="md-nav__link">
<span class="md-ellipsis">
3.4.2 &nbsp; Gbk Character Set
3.4.2 &nbsp; GBK Character Set
</span>
</a>
@@ -4367,7 +4367,7 @@
<a href="#344-utf-8-encoding" class="md-nav__link">
<span class="md-ellipsis">
3.4.4 &nbsp; Utf-8 Encoding
3.4.4 &nbsp; UTF-8 Encoding
</span>
</a>
@@ -4424,20 +4424,20 @@
<!-- Page content -->
<h1 id="34-character-encoding">3.4 &nbsp; Character Encoding *<a class="headerlink" href="#34-character-encoding" title="Permanent link">&para;</a></h1>
<p>In computers, all data is stored in binary form, and character <code>char</code> is no exception. To represent characters, we need to establish a "character set" that defines a one-to-one correspondence between each character and binary numbers. With a character set, computers can convert binary numbers to characters by looking up the table.</p>
<h2 id="341-ascii-character-set">3.4.1 &nbsp; Ascii Character Set<a class="headerlink" href="#341-ascii-character-set" title="Permanent link">&para;</a></h2>
<h2 id="341-ascii-character-set">3.4.1 &nbsp; ASCII Character Set<a class="headerlink" href="#341-ascii-character-set" title="Permanent link">&para;</a></h2>
<p><u>ASCII code</u> is the earliest character set, with the full name American Standard Code for Information Interchange. It uses 7 binary bits (the lower 7 bits of one byte) to represent a character, and can represent a maximum of 128 different characters. As shown in Figure 3-6, ASCII code includes uppercase and lowercase English letters, numbers 0 ~ 9, some punctuation marks, and some control characters (such as newline and tab).</p>
<p><img alt="ASCII code" class="animation-figure" src="../character_encoding.assets/ascii_table.png" /></p>
<p align="center"> Figure 3-6 &nbsp; ASCII code </p>
<p>However, <strong>ASCII code can only represent English</strong>. With the globalization of computers, a character set called <u>EASCII</u> that can represent more languages emerged. It expands from the 7-bit basis of ASCII to 8 bits, and can represent 256 different characters.</p>
<p>Worldwide, a batch of EASCII character sets suitable for different regions have appeared successively. The first 128 characters of these character sets are unified as ASCII code, and the last 128 characters are defined differently to adapt to the needs of different languages.</p>
<h2 id="342-gbk-character-set">3.4.2 &nbsp; Gbk Character Set<a class="headerlink" href="#342-gbk-character-set" title="Permanent link">&para;</a></h2>
<h2 id="342-gbk-character-set">3.4.2 &nbsp; GBK Character Set<a class="headerlink" href="#342-gbk-character-set" title="Permanent link">&para;</a></h2>
<p>Later, people found that <strong>EASCII still could not provide enough characters for many languages</strong>. For example, there are nearly one hundred thousand Chinese characters, and several thousand are used in everyday life. In 1980, the China National Standardization Administration released the <u>GB2312</u> character set, which included 6,763 Chinese characters, basically meeting the needs of computer processing for Chinese.</p>
<p>However, GB2312 cannot handle some rare characters and traditional Chinese characters. The <u>GBK</u> character set is an extension based on GB2312, which includes a total of 21,886 Chinese characters. In the GBK encoding scheme, ASCII characters are represented using one byte, and Chinese characters are represented using two bytes.</p>
<h2 id="343-unicode-character-set">3.4.3 &nbsp; Unicode Character Set<a class="headerlink" href="#343-unicode-character-set" title="Permanent link">&para;</a></h2>
<p>With the vigorous development of computer technology, character sets and encoding standards flourished, which brought many problems. On the one hand, these character sets generally only define characters for specific languages and cannot work normally in multilingual environments. On the other hand, multiple character set standards exist for the same language, and if two computers use different encoding standards, garbled characters will appear during information transmission.</p>
<p>Researchers of that era thought: <strong>If a sufficiently complete character set were released to include all languages and symbols in the world, wouldn't that solve problems in cross-language environments and eliminate garbled text</strong>? Driven by this idea, a large and comprehensive character set, Unicode, was born.</p>
<p><u>Unicode</u> is called "统一码" (Unified Code) in Chinese and can theoretically accommodate over one million characters. It is committed to including characters from around the world into a unified character set, providing a universal character set to handle and display various language texts, reducing garbled character problems caused by different encoding standards.</p>
<p><u>Unicode</u>, or Unified Code, can theoretically accommodate over one million characters. It is committed to including characters from around the world into a unified character set, providing a universal character set to handle and display various language texts, reducing garbled character problems caused by different encoding standards.</p>
<p>Since its release in 1991, Unicode has continuously expanded to include new languages and characters. As of September 2022, Unicode has included 149,186 characters, including characters, symbols, and even emojis from various languages. In practical storage and encoding schemes for this vast character set, commonly used characters often occupy 2 bytes, while some rare characters occupy 3 bytes or even 4 bytes.</p>
<p>Unicode is a universal character set that essentially assigns a number (called a "code point") to each character, <strong>but it does not specify how to store these character code points in computers</strong>. We can't help but ask: when Unicode code points of multiple lengths appear simultaneously in a text, how does the system parse the characters? For example, given an encoding with a length of 2 bytes, how does the system determine whether it is one 2-byte character or two 1-byte characters?</p>
<p>For the above problem, <strong>a straightforward solution is to store all characters as equal-length encodings</strong>. As shown in Figure 3-7, each character in "Hello" occupies 1 byte, and each character in "算法" (algorithm) occupies 2 bytes. We can encode all characters in "Hello 算法" as 2 bytes in length by padding the high bits with 0. In this way, the system can parse one character every 2 bytes and restore the content of this phrase.</p>
@@ -4445,14 +4445,14 @@
<p align="center"> Figure 3-7 &nbsp; Unicode encoding example </p>
<p>However, ASCII code has already proven to us that encoding English only requires 1 byte. If the above scheme is adopted, the size of English text will be twice that under ASCII encoding, which is very wasteful of memory space. Therefore, we need a more efficient Unicode encoding method.</p>
<h2 id="344-utf-8-encoding">3.4.4 &nbsp; Utf-8 Encoding<a class="headerlink" href="#344-utf-8-encoding" title="Permanent link">&para;</a></h2>
<h2 id="344-utf-8-encoding">3.4.4 &nbsp; UTF-8 Encoding<a class="headerlink" href="#344-utf-8-encoding" title="Permanent link">&para;</a></h2>
<p>Currently, UTF-8 has become the most widely used Unicode encoding method internationally. <strong>It is a variable-length encoding</strong> that uses 1 to 4 bytes to represent a character, depending on the complexity of the character. ASCII characters only require 1 byte, Latin and Greek letters require 2 bytes, commonly used Chinese characters require 3 bytes, and some other rare characters require 4 bytes.</p>
<p>The encoding rules of UTF-8 are not complicated and can be divided into the following two cases.</p>
<ul>
<li>For 1-byte characters, set the highest bit to <span class="arithmatex">\(0\)</span>, and set the remaining 7 bits to the Unicode code point. It is worth noting that ASCII characters occupy the first 128 code points in the Unicode character set. That is to say, <strong>UTF-8 encoding is backward compatible with ASCII code</strong>. This means we can use UTF-8 to parse very old ASCII code text.</li>
<li>For characters with a length of <span class="arithmatex">\(n\)</span> bytes (where <span class="arithmatex">\(n &gt; 1\)</span>), set the highest <span class="arithmatex">\(n\)</span> bits of the first byte to <span class="arithmatex">\(1\)</span>, and set the <span class="arithmatex">\((n + 1)\)</span>-th bit to <span class="arithmatex">\(0\)</span>; starting from the second byte, set the highest 2 bits of each byte to <span class="arithmatex">\(10\)</span>; use all remaining bits to fill in the Unicode code point of the character.</li>
</ul>
<p>Figure 3-8 shows the UTF-8 encoding corresponding to "Hello算法". It can be observed that since the highest <span class="arithmatex">\(n\)</span> bits are all set to <span class="arithmatex">\(1\)</span>, the system can determine that the character length is <span class="arithmatex">\(n\)</span> by counting the leading <span class="arithmatex">\(1\)</span> bits.</p>
<p>Figure 3-8 shows the UTF-8 encoding corresponding to "Hello 算法". It can be observed that since the highest <span class="arithmatex">\(n\)</span> bits are all set to <span class="arithmatex">\(1\)</span>, the system can determine that the character length is <span class="arithmatex">\(n\)</span> by counting the leading <span class="arithmatex">\(1\)</span> bits.</p>
<p>But why set the highest 2 bits of all other bytes to <span class="arithmatex">\(10\)</span>? In fact, this <span class="arithmatex">\(10\)</span> can serve as a check symbol. Assuming the system starts parsing text from an incorrect byte, the <span class="arithmatex">\(10\)</span> at the beginning of the byte can help the system quickly determine an anomaly.</p>
<p>The reason for using <span class="arithmatex">\(10\)</span> as a check symbol is that under UTF-8 encoding rules, it is impossible for a character's highest two bits to be <span class="arithmatex">\(10\)</span>. This conclusion can be proven by contradiction: assuming the highest two bits of a character are <span class="arithmatex">\(10\)</span>, it means the length of the character is <span class="arithmatex">\(1\)</span>, corresponding to ASCII code. However, the highest bit of ASCII code should be <span class="arithmatex">\(0\)</span>, which contradicts the assumption.</p>
<p><img alt="UTF-8 encoding example" class="animation-figure" src="../character_encoding.assets/utf-8_hello_algo.png" /></p>
@@ -1665,7 +1665,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1687,7 +1687,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1595,7 +1595,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1617,7 +1617,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1665,7 +1665,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1687,7 +1687,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+3 -3
View File
@@ -1665,7 +1665,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1687,7 +1687,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -4397,7 +4397,7 @@
1110 \rightarrow 1101 \rightarrow 0010
\]</div>
<p>In summary, both "first negate then add 1" and "first subtract 1 then negate" are computing the complement to <span class="arithmatex">\(10000\)</span>, and they are equivalent.</p>
<p>Essentially, the "negate" operation is actually finding the complement to <span class="arithmatex">\(1111\)</span> (because <code>sign-magnitude + 1's complement = 1111</code> always holds); and adding 1 to the 1's complement yields the 2's complement, which is the complement to <span class="arithmatex">\(10000\)</span>.</p>
<p>Essentially, the "negate" operation is actually finding the complement to <span class="arithmatex">\(1111\)</span> (because "sign-magnitude + 1's complement = 1111" always holds); and adding 1 to the 1's complement yields the 2's complement, which is the complement to <span class="arithmatex">\(10000\)</span>.</p>
<p>The above uses <span class="arithmatex">\(n = 4\)</span> as an example, and it can be generalized to binary numbers of any number of bits.</p>
<!-- Source file information -->
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1595,7 +1595,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1617,7 +1617,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1595,7 +1595,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1617,7 +1617,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+4 -4
View File
@@ -1595,7 +1595,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1617,7 +1617,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -6105,7 +6105,7 @@ aria-label="Footer"
<a
href="../"
class="md-footer__link md-footer__link--prev"
aria-label="Previous: Chapter 6. &amp;nbsp; Hash Table"
aria-label="Previous: Chapter 6. &amp;nbsp; Hashing"
rel="prev"
>
<div class="md-footer__button md-icon">
@@ -6117,7 +6117,7 @@ aria-label="Footer"
Previous
</span>
<div class="md-ellipsis">
Chapter 6. &nbsp; Hash Table
Chapter 6. &nbsp; Hashing
</div>
</div>
</a>
+7 -7
View File
@@ -39,7 +39,7 @@
<title>Chapter 6. Hash Table - Hello Algo</title>
<title>Chapter 6. Hashing - Hello Algo</title>
@@ -99,7 +99,7 @@
<div data-md-component="skip">
<a href="#chapter-6-hash-table" class="md-skip">
<a href="#chapter-6-hashing" class="md-skip">
Skip to content
</a>
@@ -154,7 +154,7 @@
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
Chapter 6. &nbsp; Hash Table
Chapter 6. &nbsp; Hashing
</span>
</div>
@@ -1595,7 +1595,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1617,7 +1617,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -4275,8 +4275,8 @@
<!-- Page content -->
<h1 id="chapter-6-hash-table">Chapter 6. &nbsp; Hash Table<a class="headerlink" href="#chapter-6-hash-table" title="Permanent link">&para;</a></h1>
<p><img alt="Hash Table" class="cover-image" src="../assets/covers/chapter_hashing.jpg" /></p>
<h1 id="chapter-6-hashing">Chapter 6. &nbsp; Hashing<a class="headerlink" href="#chapter-6-hashing" title="Permanent link">&para;</a></h1>
<p><img alt="Hashing" class="cover-image" src="../assets/covers/chapter_hashing.jpg" /></p>
<div class="admonition abstract">
<p class="admonition-title">Abstract</p>
<p>In the world of computing, a hash table is like a clever librarian.</p>
+2 -2
View File
@@ -1595,7 +1595,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1617,7 +1617,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1605,7 +1605,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1627,7 +1627,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1595,7 +1595,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1617,7 +1617,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1665,7 +1665,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1687,7 +1687,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1676,7 +1676,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1698,7 +1698,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1676,7 +1676,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1698,7 +1698,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1595,7 +1595,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1617,7 +1617,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1698,7 +1698,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1720,7 +1720,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1654,7 +1654,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1676,7 +1676,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1591,7 +1591,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1613,7 +1613,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1593,7 +1593,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1615,7 +1615,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1704,7 +1704,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1726,7 +1726,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>
+2 -2
View File
@@ -1595,7 +1595,7 @@
<span class="md-ellipsis">
Chapter 6. Hash Table
Chapter 6. Hashing
@@ -1617,7 +1617,7 @@
<span class="md-nav__icon md-icon"></span>
Chapter 6. Hash Table
Chapter 6. Hashing
</label>

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