This commit is contained in:
krahets
2023-02-24 18:46:22 +08:00
parent 0edd696eb7
commit 700da13226
50 changed files with 3964 additions and 3964 deletions
+97 -97
View File
@@ -23,7 +23,7 @@
<title>0.1. 关于本书 - Hello 算法</title>
<title>0.1.   关于本书 - Hello 算法</title>
@@ -109,7 +109,7 @@
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
0.1. 关于本书
0.1. &nbsp; 关于本书
</span>
</div>
@@ -268,14 +268,14 @@
<label class="md-nav__link" for="__nav_1" id="__nav_1_label" tabindex="0">
0. 写在前面
0. &nbsp; &nbsp; 写在前面
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_1_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_1">
<span class="md-nav__icon md-icon"></span>
0. 写在前面
0. &nbsp; &nbsp; 写在前面
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -295,12 +295,12 @@
<label class="md-nav__link md-nav__link--active" for="__toc">
0.1. 关于本书
0.1. &nbsp; 关于本书
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
0.1. 关于本书
0.1. &nbsp; 关于本书
</a>
@@ -320,17 +320,17 @@
<li class="md-nav__item">
<a href="#011" class="md-nav__link">
0.1.1. 读者对象
0.1.1. &nbsp; 读者对象
</a>
</li>
<li class="md-nav__item">
<a href="#012" class="md-nav__link">
0.1.2. 内容结构
0.1.2. &nbsp; 内容结构
</a>
<nav class="md-nav" aria-label="0.1.2. 内容结构">
<nav class="md-nav" aria-label="0.1.2. &nbsp; 内容结构">
<ul class="md-nav__list">
<li class="md-nav__item">
@@ -361,35 +361,35 @@
<li class="md-nav__item">
<a href="#013" class="md-nav__link">
0.1.3. 配套代码
0.1.3. &nbsp; 配套代码
</a>
</li>
<li class="md-nav__item">
<a href="#014" class="md-nav__link">
0.1.4. 风格约定
0.1.4. &nbsp; 风格约定
</a>
</li>
<li class="md-nav__item">
<a href="#015" class="md-nav__link">
0.1.5. 本书特点 *
0.1.5. &nbsp; 本书特点 *
</a>
</li>
<li class="md-nav__item">
<a href="#016" class="md-nav__link">
0.1.6. 致谢
0.1.6. &nbsp; 致谢
</a>
</li>
<li class="md-nav__item">
<a href="#017" class="md-nav__link">
0.1.7. 作者简介
0.1.7. &nbsp; 作者简介
</a>
</li>
@@ -410,7 +410,7 @@
<li class="md-nav__item">
<a href="../suggestions/" class="md-nav__link">
0.2. 如何使用本书
0.2. &nbsp; 如何使用本书
</a>
</li>
@@ -424,7 +424,7 @@
<li class="md-nav__item">
<a href="../installation/" class="md-nav__link">
0.3. 编程环境安装
0.3. &nbsp; 编程环境安装
</a>
</li>
@@ -438,7 +438,7 @@
<li class="md-nav__item">
<a href="../contribution/" class="md-nav__link">
0.4. 一起参与创作
0.4. &nbsp; 一起参与创作
</a>
</li>
@@ -477,14 +477,14 @@
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
1. 引言
1. &nbsp; &nbsp; 引言
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
1. 引言
1. &nbsp; &nbsp; 引言
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -495,7 +495,7 @@
<li class="md-nav__item">
<a href="../../chapter_introduction/algorithms_are_everywhere/" class="md-nav__link">
1.1. 算法无处不在
1.1. &nbsp; 算法无处不在
</a>
</li>
@@ -509,7 +509,7 @@
<li class="md-nav__item">
<a href="../../chapter_introduction/what_is_dsa/" class="md-nav__link">
1.2. 算法是什么
1.2. &nbsp; 算法是什么
</a>
</li>
@@ -554,14 +554,14 @@
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
2. 计算复杂度
2. &nbsp; &nbsp; 计算复杂度
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
2. 计算复杂度
2. &nbsp; &nbsp; 计算复杂度
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -572,7 +572,7 @@
<li class="md-nav__item">
<a href="../../chapter_computational_complexity/performance_evaluation/" class="md-nav__link">
2.1. 算法效率评估
2.1. &nbsp; 算法效率评估
</a>
</li>
@@ -586,7 +586,7 @@
<li class="md-nav__item">
<a href="../../chapter_computational_complexity/time_complexity/" class="md-nav__link">
2.2. 时间复杂度
2.2. &nbsp; 时间复杂度
</a>
</li>
@@ -600,7 +600,7 @@
<li class="md-nav__item">
<a href="../../chapter_computational_complexity/space_complexity/" class="md-nav__link">
2.3. 空间复杂度
2.3. &nbsp; 空间复杂度
</a>
</li>
@@ -614,7 +614,7 @@
<li class="md-nav__item">
<a href="../../chapter_computational_complexity/space_time_tradeoff/" class="md-nav__link">
2.4. 权衡时间与空间
2.4. &nbsp; 权衡时间与空间
</a>
</li>
@@ -628,7 +628,7 @@
<li class="md-nav__item">
<a href="../../chapter_computational_complexity/summary/" class="md-nav__link">
2.5. 小结
2.5. &nbsp; 小结
</a>
</li>
@@ -669,14 +669,14 @@
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
3. 数据结构简介
3. &nbsp; &nbsp; 数据结构简介
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4">
<span class="md-nav__icon md-icon"></span>
3. 数据结构简介
3. &nbsp; &nbsp; 数据结构简介
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -687,7 +687,7 @@
<li class="md-nav__item">
<a href="../../chapter_data_structure/data_and_memory/" class="md-nav__link">
3.1. 数据与内存
3.1. &nbsp; 数据与内存
</a>
</li>
@@ -701,7 +701,7 @@
<li class="md-nav__item">
<a href="../../chapter_data_structure/classification_of_data_structure/" class="md-nav__link">
3.2. 数据结构分类
3.2. &nbsp; 数据结构分类
</a>
</li>
@@ -715,7 +715,7 @@
<li class="md-nav__item">
<a href="../../chapter_data_structure/summary/" class="md-nav__link">
3.3. 小结
3.3. &nbsp; 小结
</a>
</li>
@@ -758,14 +758,14 @@
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
4. 数组与链表
4. &nbsp; &nbsp; 数组与链表
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
<span class="md-nav__icon md-icon"></span>
4. 数组与链表
4. &nbsp; &nbsp; 数组与链表
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -776,7 +776,7 @@
<li class="md-nav__item">
<a href="../../chapter_array_and_linkedlist/array/" class="md-nav__link">
4.1. 数组(Array
4.1. &nbsp; 数组(Array
</a>
</li>
@@ -790,7 +790,7 @@
<li class="md-nav__item">
<a href="../../chapter_array_and_linkedlist/linked_list/" class="md-nav__link">
4.2. 链表(LinkedList
4.2. &nbsp; 链表(LinkedList
</a>
</li>
@@ -804,7 +804,7 @@
<li class="md-nav__item">
<a href="../../chapter_array_and_linkedlist/list/" class="md-nav__link">
4.3. 列表(List
4.3. &nbsp; 列表(List
</a>
</li>
@@ -818,7 +818,7 @@
<li class="md-nav__item">
<a href="../../chapter_array_and_linkedlist/summary/" class="md-nav__link">
4.4. 小结
4.4. &nbsp; 小结
</a>
</li>
@@ -861,14 +861,14 @@
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
5. 栈与队列
5. &nbsp; &nbsp; 栈与队列
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6">
<span class="md-nav__icon md-icon"></span>
5. 栈与队列
5. &nbsp; &nbsp; 栈与队列
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -879,7 +879,7 @@
<li class="md-nav__item">
<a href="../../chapter_stack_and_queue/stack/" class="md-nav__link">
5.1. 栈(Stack
5.1. &nbsp; 栈(Stack
</a>
</li>
@@ -893,7 +893,7 @@
<li class="md-nav__item">
<a href="../../chapter_stack_and_queue/queue/" class="md-nav__link">
5.2. 队列(Queue
5.2. &nbsp; 队列(Queue
</a>
</li>
@@ -907,7 +907,7 @@
<li class="md-nav__item">
<a href="../../chapter_stack_and_queue/deque/" class="md-nav__link">
5.3. 双向队列(Deque
5.3. &nbsp; 双向队列(Deque
</a>
</li>
@@ -921,7 +921,7 @@
<li class="md-nav__item">
<a href="../../chapter_stack_and_queue/summary/" class="md-nav__link">
5.4. 小结
5.4. &nbsp; 小结
</a>
</li>
@@ -962,14 +962,14 @@
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0">
6. 散列表
6. &nbsp; &nbsp; 散列表
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_7">
<span class="md-nav__icon md-icon"></span>
6. 散列表
6. &nbsp; &nbsp; 散列表
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -980,7 +980,7 @@
<li class="md-nav__item">
<a href="../../chapter_hashing/hash_map/" class="md-nav__link">
6.1. 哈希表(HashMap
6.1. &nbsp; 哈希表(HashMap
</a>
</li>
@@ -994,7 +994,7 @@
<li class="md-nav__item">
<a href="../../chapter_hashing/hash_collision/" class="md-nav__link">
6.2. 哈希冲突处理
6.2. &nbsp; 哈希冲突处理
</a>
</li>
@@ -1008,7 +1008,7 @@
<li class="md-nav__item">
<a href="../../chapter_hashing/summary/" class="md-nav__link">
6.3. 小结
6.3. &nbsp; 小结
</a>
</li>
@@ -1053,14 +1053,14 @@
<label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
7. 二叉树
7. &nbsp; &nbsp; 二叉树
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_8">
<span class="md-nav__icon md-icon"></span>
7. 二叉树
7. &nbsp; &nbsp; 二叉树
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1071,7 +1071,7 @@
<li class="md-nav__item">
<a href="../../chapter_tree/binary_tree/" class="md-nav__link">
7.1. 二叉树(Binary Tree
7.1. &nbsp; 二叉树(Binary Tree
</a>
</li>
@@ -1085,7 +1085,7 @@
<li class="md-nav__item">
<a href="../../chapter_tree/binary_tree_traversal/" class="md-nav__link">
7.2. 二叉树遍历
7.2. &nbsp; 二叉树遍历
</a>
</li>
@@ -1099,7 +1099,7 @@
<li class="md-nav__item">
<a href="../../chapter_tree/binary_search_tree/" class="md-nav__link">
7.3. 二叉搜索树
7.3. &nbsp; 二叉搜索树
</a>
</li>
@@ -1113,7 +1113,7 @@
<li class="md-nav__item">
<a href="../../chapter_tree/avl_tree/" class="md-nav__link">
7.4. AVL 树 *
7.4. &nbsp; AVL 树 *
</a>
</li>
@@ -1127,7 +1127,7 @@
<li class="md-nav__item">
<a href="../../chapter_tree/summary/" class="md-nav__link">
7.5. 小结
7.5. &nbsp; 小结
</a>
</li>
@@ -1164,14 +1164,14 @@
<label class="md-nav__link" for="__nav_9" id="__nav_9_label" tabindex="0">
8. 堆
8. &nbsp; &nbsp;
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_9">
<span class="md-nav__icon md-icon"></span>
8. 堆
8. &nbsp; &nbsp;
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1182,7 +1182,7 @@
<li class="md-nav__item">
<a href="../../chapter_heap/heap/" class="md-nav__link">
8.1. 堆(Heap
8.1. &nbsp; 堆(Heap
</a>
</li>
@@ -1223,14 +1223,14 @@
<label class="md-nav__link" for="__nav_10" id="__nav_10_label" tabindex="0">
9. 图
9. &nbsp; &nbsp;
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_10_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_10">
<span class="md-nav__icon md-icon"></span>
9. 图
9. &nbsp; &nbsp;
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1241,7 +1241,7 @@
<li class="md-nav__item">
<a href="../../chapter_graph/graph/" class="md-nav__link">
9.1. 图(Graph
9.1. &nbsp; 图(Graph
</a>
</li>
@@ -1255,7 +1255,7 @@
<li class="md-nav__item">
<a href="../../chapter_graph/graph_operations/" class="md-nav__link">
9.2. 图基础操作
9.2. &nbsp; 图基础操作
</a>
</li>
@@ -1269,7 +1269,7 @@
<li class="md-nav__item">
<a href="../../chapter_graph/graph_traversal/" class="md-nav__link">
9.3. 图的遍历
9.3. &nbsp; 图的遍历
</a>
</li>
@@ -1312,14 +1312,14 @@
<label class="md-nav__link" for="__nav_11" id="__nav_11_label" tabindex="0">
10. 查找算法
10. &nbsp; &nbsp; 查找算法
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_11_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_11">
<span class="md-nav__icon md-icon"></span>
10. 查找算法
10. &nbsp; &nbsp; 查找算法
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1330,7 +1330,7 @@
<li class="md-nav__item">
<a href="../../chapter_searching/linear_search/" class="md-nav__link">
10.1. 线性查找
10.1. &nbsp; 线性查找
</a>
</li>
@@ -1344,7 +1344,7 @@
<li class="md-nav__item">
<a href="../../chapter_searching/binary_search/" class="md-nav__link">
10.2. 二分查找
10.2. &nbsp; 二分查找
</a>
</li>
@@ -1358,7 +1358,7 @@
<li class="md-nav__item">
<a href="../../chapter_searching/hashing_search/" class="md-nav__link">
10.3. 哈希查找
10.3. &nbsp; 哈希查找
</a>
</li>
@@ -1372,7 +1372,7 @@
<li class="md-nav__item">
<a href="../../chapter_searching/summary/" class="md-nav__link">
10.4. 小结
10.4. &nbsp; 小结
</a>
</li>
@@ -1419,14 +1419,14 @@
<label class="md-nav__link" for="__nav_12" id="__nav_12_label" tabindex="0">
11. 排序算法
11. &nbsp; &nbsp; 排序算法
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_12_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_12">
<span class="md-nav__icon md-icon"></span>
11. 排序算法
11. &nbsp; &nbsp; 排序算法
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1437,7 +1437,7 @@
<li class="md-nav__item">
<a href="../../chapter_sorting/intro_to_sort/" class="md-nav__link">
11.1. 排序简介
11.1. &nbsp; 排序简介
</a>
</li>
@@ -1451,7 +1451,7 @@
<li class="md-nav__item">
<a href="../../chapter_sorting/bubble_sort/" class="md-nav__link">
11.2. 冒泡排序
11.2. &nbsp; 冒泡排序
</a>
</li>
@@ -1465,7 +1465,7 @@
<li class="md-nav__item">
<a href="../../chapter_sorting/insertion_sort/" class="md-nav__link">
11.3. 插入排序
11.3. &nbsp; 插入排序
</a>
</li>
@@ -1479,7 +1479,7 @@
<li class="md-nav__item">
<a href="../../chapter_sorting/quick_sort/" class="md-nav__link">
11.4. 快速排序
11.4. &nbsp; 快速排序
</a>
</li>
@@ -1493,7 +1493,7 @@
<li class="md-nav__item">
<a href="../../chapter_sorting/merge_sort/" class="md-nav__link">
11.5. 归并排序
11.5. &nbsp; 归并排序
</a>
</li>
@@ -1507,7 +1507,7 @@
<li class="md-nav__item">
<a href="../../chapter_sorting/summary/" class="md-nav__link">
11.6. 小结
11.6. &nbsp; 小结
</a>
</li>
@@ -1595,17 +1595,17 @@
<li class="md-nav__item">
<a href="#011" class="md-nav__link">
0.1.1. 读者对象
0.1.1. &nbsp; 读者对象
</a>
</li>
<li class="md-nav__item">
<a href="#012" class="md-nav__link">
0.1.2. 内容结构
0.1.2. &nbsp; 内容结构
</a>
<nav class="md-nav" aria-label="0.1.2. 内容结构">
<nav class="md-nav" aria-label="0.1.2. &nbsp; 内容结构">
<ul class="md-nav__list">
<li class="md-nav__item">
@@ -1636,35 +1636,35 @@
<li class="md-nav__item">
<a href="#013" class="md-nav__link">
0.1.3. 配套代码
0.1.3. &nbsp; 配套代码
</a>
</li>
<li class="md-nav__item">
<a href="#014" class="md-nav__link">
0.1.4. 风格约定
0.1.4. &nbsp; 风格约定
</a>
</li>
<li class="md-nav__item">
<a href="#015" class="md-nav__link">
0.1.5. 本书特点 *
0.1.5. &nbsp; 本书特点 *
</a>
</li>
<li class="md-nav__item">
<a href="#016" class="md-nav__link">
0.1.6. 致谢
0.1.6. &nbsp; 致谢
</a>
</li>
<li class="md-nav__item">
<a href="#017" class="md-nav__link">
0.1.7. 作者简介
0.1.7. &nbsp; 作者简介
</a>
</li>
@@ -1693,13 +1693,13 @@
<h1 id="01">0.1. 关于本书<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>五年前发生的一件事,成为了我职业生涯的重要转折点。当时的我在交大读研,对互联网求职一无所知,但仍然硬着头皮申请了 Microsoft 软件工程师实习。面试官让我在白板上写出“快速排序”代码,我畏畏缩缩地写了一个“冒泡排序”,并且还写错了<code>(ToT)</code> 。从面试官的表情上,我看到了一个大大的 "GG" 。</p>
<p>此次失利倒逼我开始刷算法题。我采用“扫雷游戏”式的学习方法,两眼一抹黑刷题,扫到不会的“雷”就通过查资料把它“排掉”,配合周期性总结,逐渐形成了数据结构与算法的知识图景。幸运地,我在秋招斩获了多家大厂的 Offer 。</p>
<p>回想自己当初在“扫雷式”刷题中被炸的满头包的痛苦,思考良久,我意识到一本“前期刷题必看”的读物可以使算法小白少走许多弯路。写作意愿滚滚袭来,那就动笔吧:</p>
<h4 align="center"> Hello,算法! </h4>
<h2 id="011">0.1.1. 读者对象<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>
<div class="admonition success">
<p class="admonition-title">前置条件</p>
<p>您需要至少具备任一语言的编程基础,能够阅读和编写简单代码。</p>
@@ -1717,7 +1717,7 @@
<li>源代码实现了各种经典数据结构和算法,可以作为“刷题工具库”来使用。</li>
</ul>
<p>如果您是 <strong>算法大佬</strong>,请受我膜拜!希望您可以抽时间提出意见建议,或者<a href="https://www.hello-algo.com/chapter_preface/contribution/">一起参与创作</a>,帮助各位同学获取更好的学习内容,感谢!</p>
<h2 id="012">0.1.2. 内容结构<a class="headerlink" href="#012" title="Permanent link">&para;</a></h2>
<h2 id="012">0.1.2. &nbsp; 内容结构<a class="headerlink" href="#012" title="Permanent link">&para;</a></h2>
<p>本书主要内容分为复杂度分析、数据结构、算法三个部分。</p>
<p><img alt="mindmap" src="../about_the_book.assets/mindmap.png" /></p>
<p align="center"> Fig. 知识点思维导图 </p>
@@ -1746,7 +1746,7 @@
<li>实现方法:完整的算法实现,以及优化措施;</li>
<li>示例题目:结合例题加深理解;</li>
</ul>
<h2 id="013">0.1.3. 配套代码<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>完整代码托管在 <a href="https://github.com/krahets/hello-algo">GitHub 仓库</a> ,皆可一键运行。</p>
<div class="admonition tip">
<p class="admonition-title">前置工作</p>
@@ -1755,7 +1755,7 @@
<li>代码下载与使用方法请见 <a href="https://www.hello-algo.com/chapter_preface/suggestions/#_4">如何使用本书</a></li>
</ol>
</div>
<h2 id="014">0.1.4. 风格约定<a class="headerlink" href="#014" title="Permanent link">&para;</a></h2>
<h2 id="014">0.1.4. &nbsp; 风格约定<a class="headerlink" href="#014" title="Permanent link">&para;</a></h2>
<ul>
<li>标题后标注 * 符号的是选读章节,如果你的时间有限,可以先跳过这些章节。</li>
<li>文章中的重要名词会用「」符号标注,例如「数组 Array」。名词混淆会导致不必要的歧义,因此最好可以记住这类名词(包括中文和英文),以便后续阅读文献时使用。</li>
@@ -1875,7 +1875,7 @@
</div>
</div>
</div>
<h2 id="015">0.1.5. 本书特点 *<a class="headerlink" href="#015" title="Permanent link">&para;</a></h2>
<h2 id="015">0.1.5. &nbsp; 本书特点 *<a class="headerlink" href="#015" title="Permanent link">&para;</a></h2>
<details class="abstract">
<summary>默认折叠,可以跳过</summary>
<p><strong>以实践为主</strong>。我们知道,学习英语期间光啃书本是远远不够的,需要多听、多说、多写,在实践中培养语感、积累经验。编程语言也是一门语言,因此学习方法也应是类似的,需要多看优秀代码、多敲键盘、多思考代码逻辑。</p>
@@ -1888,7 +1888,7 @@
<p>引入一些生活案例或趣味内容,非常适合作为知识点的引子或者解释的补充,但当融入过多额外元素时,内容会稍显冗长,也许反而使读者容易迷失、抓不住重点,这也是本书需要避免的。</p>
<p>敲代码如同写字,“美”是统一的追求。本书力求美观的代码,保证规范的变量命名、统一的空格与换行、对齐的缩进、整齐的注释等。</p>
</details>
<h2 id="016">0.1.6. 致谢<a class="headerlink" href="#016" title="Permanent link">&para;</a></h2>
<h2 id="016">0.1.6. &nbsp; 致谢<a class="headerlink" href="#016" title="Permanent link">&para;</a></h2>
<p>本书的成书过程中,我获得了许多人的帮助,包括但不限于:</p>
<ul>
<li>感谢我的女朋友泡泡担任本书的首位读者,从算法小白的视角为本书的写作提出了许多建议,使这本书更加适合算法初学者来阅读。</li>
@@ -1900,7 +1900,7 @@
<p>本书鼓励“手脑并用”的学习方式,在这点上受到了《动手学深度学习》很大影响,也在此向各位同学强烈推荐这本著作,包括<a href="https://github.com/d2l-ai/d2l-zh">中文版</a><a href="https://github.com/d2l-ai/d2l-en">英文版</a><a href="https://space.bilibili.com/1567748478">李沐老师 bilibili 主页</a></p>
<p>在写作过程中,我阅读了许多与数据结构与算法的书籍与教材,这些著作为本书作出了很好的榜样,保证了本书内容的正确性与质量,感谢前辈们的精彩创作!</p>
<p>感谢父母,你们一贯的支持与鼓励给了我自由度来做这些有趣的事。</p>
<h2 id="017">0.1.7. 作者简介<a class="headerlink" href="#017" title="Permanent link">&para;</a></h2>
<h2 id="017">0.1.7. &nbsp; 作者简介<a class="headerlink" href="#017" title="Permanent link">&para;</a></h2>
<p><img alt="profile" class="center" src="../about_the_book.assets/profile.png" /></p>
<h2 align="center"> Krahets </h2>
@@ -1987,13 +1987,13 @@
<a href="../suggestions/" class="md-footer__link md-footer__link--next" aria-label="下一页: 0.2. 如何使用本书" rel="next">
<a href="../suggestions/" class="md-footer__link md-footer__link--next" aria-label="下一页: 0.2. &amp;nbsp; 如何使用本书" rel="next">
<div class="md-footer__title">
<div class="md-ellipsis">
<span class="md-footer__direction">
下一页
</span>
0.2. 如何使用本书
0.2. &nbsp; 如何使用本书
</div>
</div>
<div class="md-footer__button md-icon">
+85 -85
View File
@@ -25,7 +25,7 @@
<title>0.4. 一起参与创作 - Hello 算法</title>
<title>0.4.   一起参与创作 - Hello 算法</title>
@@ -111,7 +111,7 @@
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
0.4. 一起参与创作
0.4. &nbsp; 一起参与创作
</span>
</div>
@@ -270,14 +270,14 @@
<label class="md-nav__link" for="__nav_1" id="__nav_1_label" tabindex="0">
0. 写在前面
0. &nbsp; &nbsp; 写在前面
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_1_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_1">
<span class="md-nav__icon md-icon"></span>
0. 写在前面
0. &nbsp; &nbsp; 写在前面
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -288,7 +288,7 @@
<li class="md-nav__item">
<a href="../about_the_book/" class="md-nav__link">
0.1. 关于本书
0.1. &nbsp; 关于本书
</a>
</li>
@@ -302,7 +302,7 @@
<li class="md-nav__item">
<a href="../suggestions/" class="md-nav__link">
0.2. 如何使用本书
0.2. &nbsp; 如何使用本书
</a>
</li>
@@ -316,7 +316,7 @@
<li class="md-nav__item">
<a href="../installation/" class="md-nav__link">
0.3. 编程环境安装
0.3. &nbsp; 编程环境安装
</a>
</li>
@@ -339,12 +339,12 @@
<label class="md-nav__link md-nav__link--active" for="__toc">
0.4. 一起参与创作
0.4. &nbsp; 一起参与创作
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
0.4. 一起参与创作
0.4. &nbsp; 一起参与创作
</a>
@@ -364,21 +364,21 @@
<li class="md-nav__item">
<a href="#041" class="md-nav__link">
0.4.1. 内容微调
0.4.1. &nbsp; 内容微调
</a>
</li>
<li class="md-nav__item">
<a href="#042" class="md-nav__link">
0.4.2. 内容创作
0.4.2. &nbsp; 内容创作
</a>
</li>
<li class="md-nav__item">
<a href="#043-docker" class="md-nav__link">
0.4.3. Docker 部署
0.4.3. &nbsp; Docker 部署
</a>
</li>
@@ -424,14 +424,14 @@
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
1. 引言
1. &nbsp; &nbsp; 引言
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
1. 引言
1. &nbsp; &nbsp; 引言
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -442,7 +442,7 @@
<li class="md-nav__item">
<a href="../../chapter_introduction/algorithms_are_everywhere/" class="md-nav__link">
1.1. 算法无处不在
1.1. &nbsp; 算法无处不在
</a>
</li>
@@ -456,7 +456,7 @@
<li class="md-nav__item">
<a href="../../chapter_introduction/what_is_dsa/" class="md-nav__link">
1.2. 算法是什么
1.2. &nbsp; 算法是什么
</a>
</li>
@@ -501,14 +501,14 @@
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
2. 计算复杂度
2. &nbsp; &nbsp; 计算复杂度
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
2. 计算复杂度
2. &nbsp; &nbsp; 计算复杂度
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -519,7 +519,7 @@
<li class="md-nav__item">
<a href="../../chapter_computational_complexity/performance_evaluation/" class="md-nav__link">
2.1. 算法效率评估
2.1. &nbsp; 算法效率评估
</a>
</li>
@@ -533,7 +533,7 @@
<li class="md-nav__item">
<a href="../../chapter_computational_complexity/time_complexity/" class="md-nav__link">
2.2. 时间复杂度
2.2. &nbsp; 时间复杂度
</a>
</li>
@@ -547,7 +547,7 @@
<li class="md-nav__item">
<a href="../../chapter_computational_complexity/space_complexity/" class="md-nav__link">
2.3. 空间复杂度
2.3. &nbsp; 空间复杂度
</a>
</li>
@@ -561,7 +561,7 @@
<li class="md-nav__item">
<a href="../../chapter_computational_complexity/space_time_tradeoff/" class="md-nav__link">
2.4. 权衡时间与空间
2.4. &nbsp; 权衡时间与空间
</a>
</li>
@@ -575,7 +575,7 @@
<li class="md-nav__item">
<a href="../../chapter_computational_complexity/summary/" class="md-nav__link">
2.5. 小结
2.5. &nbsp; 小结
</a>
</li>
@@ -616,14 +616,14 @@
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
3. 数据结构简介
3. &nbsp; &nbsp; 数据结构简介
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4">
<span class="md-nav__icon md-icon"></span>
3. 数据结构简介
3. &nbsp; &nbsp; 数据结构简介
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -634,7 +634,7 @@
<li class="md-nav__item">
<a href="../../chapter_data_structure/data_and_memory/" class="md-nav__link">
3.1. 数据与内存
3.1. &nbsp; 数据与内存
</a>
</li>
@@ -648,7 +648,7 @@
<li class="md-nav__item">
<a href="../../chapter_data_structure/classification_of_data_structure/" class="md-nav__link">
3.2. 数据结构分类
3.2. &nbsp; 数据结构分类
</a>
</li>
@@ -662,7 +662,7 @@
<li class="md-nav__item">
<a href="../../chapter_data_structure/summary/" class="md-nav__link">
3.3. 小结
3.3. &nbsp; 小结
</a>
</li>
@@ -705,14 +705,14 @@
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
4. 数组与链表
4. &nbsp; &nbsp; 数组与链表
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
<span class="md-nav__icon md-icon"></span>
4. 数组与链表
4. &nbsp; &nbsp; 数组与链表
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -723,7 +723,7 @@
<li class="md-nav__item">
<a href="../../chapter_array_and_linkedlist/array/" class="md-nav__link">
4.1. 数组(Array
4.1. &nbsp; 数组(Array
</a>
</li>
@@ -737,7 +737,7 @@
<li class="md-nav__item">
<a href="../../chapter_array_and_linkedlist/linked_list/" class="md-nav__link">
4.2. 链表(LinkedList
4.2. &nbsp; 链表(LinkedList
</a>
</li>
@@ -751,7 +751,7 @@
<li class="md-nav__item">
<a href="../../chapter_array_and_linkedlist/list/" class="md-nav__link">
4.3. 列表(List
4.3. &nbsp; 列表(List
</a>
</li>
@@ -765,7 +765,7 @@
<li class="md-nav__item">
<a href="../../chapter_array_and_linkedlist/summary/" class="md-nav__link">
4.4. 小结
4.4. &nbsp; 小结
</a>
</li>
@@ -808,14 +808,14 @@
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
5. 栈与队列
5. &nbsp; &nbsp; 栈与队列
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6">
<span class="md-nav__icon md-icon"></span>
5. 栈与队列
5. &nbsp; &nbsp; 栈与队列
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -826,7 +826,7 @@
<li class="md-nav__item">
<a href="../../chapter_stack_and_queue/stack/" class="md-nav__link">
5.1. 栈(Stack
5.1. &nbsp; 栈(Stack
</a>
</li>
@@ -840,7 +840,7 @@
<li class="md-nav__item">
<a href="../../chapter_stack_and_queue/queue/" class="md-nav__link">
5.2. 队列(Queue
5.2. &nbsp; 队列(Queue
</a>
</li>
@@ -854,7 +854,7 @@
<li class="md-nav__item">
<a href="../../chapter_stack_and_queue/deque/" class="md-nav__link">
5.3. 双向队列(Deque
5.3. &nbsp; 双向队列(Deque
</a>
</li>
@@ -868,7 +868,7 @@
<li class="md-nav__item">
<a href="../../chapter_stack_and_queue/summary/" class="md-nav__link">
5.4. 小结
5.4. &nbsp; 小结
</a>
</li>
@@ -909,14 +909,14 @@
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0">
6. 散列表
6. &nbsp; &nbsp; 散列表
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_7">
<span class="md-nav__icon md-icon"></span>
6. 散列表
6. &nbsp; &nbsp; 散列表
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -927,7 +927,7 @@
<li class="md-nav__item">
<a href="../../chapter_hashing/hash_map/" class="md-nav__link">
6.1. 哈希表(HashMap
6.1. &nbsp; 哈希表(HashMap
</a>
</li>
@@ -941,7 +941,7 @@
<li class="md-nav__item">
<a href="../../chapter_hashing/hash_collision/" class="md-nav__link">
6.2. 哈希冲突处理
6.2. &nbsp; 哈希冲突处理
</a>
</li>
@@ -955,7 +955,7 @@
<li class="md-nav__item">
<a href="../../chapter_hashing/summary/" class="md-nav__link">
6.3. 小结
6.3. &nbsp; 小结
</a>
</li>
@@ -1000,14 +1000,14 @@
<label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
7. 二叉树
7. &nbsp; &nbsp; 二叉树
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_8">
<span class="md-nav__icon md-icon"></span>
7. 二叉树
7. &nbsp; &nbsp; 二叉树
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1018,7 +1018,7 @@
<li class="md-nav__item">
<a href="../../chapter_tree/binary_tree/" class="md-nav__link">
7.1. 二叉树(Binary Tree
7.1. &nbsp; 二叉树(Binary Tree
</a>
</li>
@@ -1032,7 +1032,7 @@
<li class="md-nav__item">
<a href="../../chapter_tree/binary_tree_traversal/" class="md-nav__link">
7.2. 二叉树遍历
7.2. &nbsp; 二叉树遍历
</a>
</li>
@@ -1046,7 +1046,7 @@
<li class="md-nav__item">
<a href="../../chapter_tree/binary_search_tree/" class="md-nav__link">
7.3. 二叉搜索树
7.3. &nbsp; 二叉搜索树
</a>
</li>
@@ -1060,7 +1060,7 @@
<li class="md-nav__item">
<a href="../../chapter_tree/avl_tree/" class="md-nav__link">
7.4. AVL 树 *
7.4. &nbsp; AVL 树 *
</a>
</li>
@@ -1074,7 +1074,7 @@
<li class="md-nav__item">
<a href="../../chapter_tree/summary/" class="md-nav__link">
7.5. 小结
7.5. &nbsp; 小结
</a>
</li>
@@ -1111,14 +1111,14 @@
<label class="md-nav__link" for="__nav_9" id="__nav_9_label" tabindex="0">
8. 堆
8. &nbsp; &nbsp;
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_9">
<span class="md-nav__icon md-icon"></span>
8. 堆
8. &nbsp; &nbsp;
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1129,7 +1129,7 @@
<li class="md-nav__item">
<a href="../../chapter_heap/heap/" class="md-nav__link">
8.1. 堆(Heap
8.1. &nbsp; 堆(Heap
</a>
</li>
@@ -1170,14 +1170,14 @@
<label class="md-nav__link" for="__nav_10" id="__nav_10_label" tabindex="0">
9. 图
9. &nbsp; &nbsp;
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_10_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_10">
<span class="md-nav__icon md-icon"></span>
9. 图
9. &nbsp; &nbsp;
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1188,7 +1188,7 @@
<li class="md-nav__item">
<a href="../../chapter_graph/graph/" class="md-nav__link">
9.1. 图(Graph
9.1. &nbsp; 图(Graph
</a>
</li>
@@ -1202,7 +1202,7 @@
<li class="md-nav__item">
<a href="../../chapter_graph/graph_operations/" class="md-nav__link">
9.2. 图基础操作
9.2. &nbsp; 图基础操作
</a>
</li>
@@ -1216,7 +1216,7 @@
<li class="md-nav__item">
<a href="../../chapter_graph/graph_traversal/" class="md-nav__link">
9.3. 图的遍历
9.3. &nbsp; 图的遍历
</a>
</li>
@@ -1259,14 +1259,14 @@
<label class="md-nav__link" for="__nav_11" id="__nav_11_label" tabindex="0">
10. 查找算法
10. &nbsp; &nbsp; 查找算法
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_11_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_11">
<span class="md-nav__icon md-icon"></span>
10. 查找算法
10. &nbsp; &nbsp; 查找算法
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1277,7 +1277,7 @@
<li class="md-nav__item">
<a href="../../chapter_searching/linear_search/" class="md-nav__link">
10.1. 线性查找
10.1. &nbsp; 线性查找
</a>
</li>
@@ -1291,7 +1291,7 @@
<li class="md-nav__item">
<a href="../../chapter_searching/binary_search/" class="md-nav__link">
10.2. 二分查找
10.2. &nbsp; 二分查找
</a>
</li>
@@ -1305,7 +1305,7 @@
<li class="md-nav__item">
<a href="../../chapter_searching/hashing_search/" class="md-nav__link">
10.3. 哈希查找
10.3. &nbsp; 哈希查找
</a>
</li>
@@ -1319,7 +1319,7 @@
<li class="md-nav__item">
<a href="../../chapter_searching/summary/" class="md-nav__link">
10.4. 小结
10.4. &nbsp; 小结
</a>
</li>
@@ -1366,14 +1366,14 @@
<label class="md-nav__link" for="__nav_12" id="__nav_12_label" tabindex="0">
11. 排序算法
11. &nbsp; &nbsp; 排序算法
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_12_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_12">
<span class="md-nav__icon md-icon"></span>
11. 排序算法
11. &nbsp; &nbsp; 排序算法
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1384,7 +1384,7 @@
<li class="md-nav__item">
<a href="../../chapter_sorting/intro_to_sort/" class="md-nav__link">
11.1. 排序简介
11.1. &nbsp; 排序简介
</a>
</li>
@@ -1398,7 +1398,7 @@
<li class="md-nav__item">
<a href="../../chapter_sorting/bubble_sort/" class="md-nav__link">
11.2. 冒泡排序
11.2. &nbsp; 冒泡排序
</a>
</li>
@@ -1412,7 +1412,7 @@
<li class="md-nav__item">
<a href="../../chapter_sorting/insertion_sort/" class="md-nav__link">
11.3. 插入排序
11.3. &nbsp; 插入排序
</a>
</li>
@@ -1426,7 +1426,7 @@
<li class="md-nav__item">
<a href="../../chapter_sorting/quick_sort/" class="md-nav__link">
11.4. 快速排序
11.4. &nbsp; 快速排序
</a>
</li>
@@ -1440,7 +1440,7 @@
<li class="md-nav__item">
<a href="../../chapter_sorting/merge_sort/" class="md-nav__link">
11.5. 归并排序
11.5. &nbsp; 归并排序
</a>
</li>
@@ -1454,7 +1454,7 @@
<li class="md-nav__item">
<a href="../../chapter_sorting/summary/" class="md-nav__link">
11.6. 小结
11.6. &nbsp; 小结
</a>
</li>
@@ -1542,21 +1542,21 @@
<li class="md-nav__item">
<a href="#041" class="md-nav__link">
0.4.1. 内容微调
0.4.1. &nbsp; 内容微调
</a>
</li>
<li class="md-nav__item">
<a href="#042" class="md-nav__link">
0.4.2. 内容创作
0.4.2. &nbsp; 内容创作
</a>
</li>
<li class="md-nav__item">
<a href="#043-docker" class="md-nav__link">
0.4.3. Docker 部署
0.4.3. &nbsp; Docker 部署
</a>
</li>
@@ -1585,13 +1585,13 @@
<h1 id="04">0.4. 一起参与创作<a class="headerlink" href="#04" title="Permanent link">&para;</a></h1>
<h1 id="04">0.4. &nbsp; 一起参与创作<a class="headerlink" href="#04" title="Permanent link">&para;</a></h1>
<div class="admonition success">
<p class="admonition-title">开源的魅力</p>
<p>纸质书籍的两次印刷的间隔时间往往需要数年,内容更新非常不方便。</br>但在本开源 HTML 书中,内容更迭的时间被缩短至数日甚至几个小时。</p>
</div>
<p>由于作者水平有限,书中内容难免疏漏谬误,请您谅解。如果发现笔误、无效链接、内容缺失、文字歧义、解释不清晰、行文结构不合理等问题,请您帮忙修正,以帮助其他读者获取更优质的学习内容。所有<a href="https://github.com/krahets/hello-algo/graphs/contributors">撰稿人</a>将被展示在仓库与网站主页,以感谢他们对开源社区的无私奉献!</p>
<h2 id="041">0.4.1. 内容微调<a class="headerlink" href="#041" title="Permanent link">&para;</a></h2>
<h2 id="041">0.4.1. &nbsp; 内容微调<a class="headerlink" href="#041" title="Permanent link">&para;</a></h2>
<p>每个页面的右上角都有一个「编辑」图标,你可以按照以下步骤修改文字或代码:</p>
<ol>
<li>点击编辑按钮,如果遇到提示“需要 Fork 此仓库”,请通过;</li>
@@ -1600,7 +1600,7 @@
</ol>
<p><img alt="edit_markdown" src="../contribution.assets/edit_markdown.png" /></p>
<p>图片无法直接修改,需要通过新建 <a href="https://github.com/krahets/hello-algo/issues">Issue</a> 或评论留言来描述图片问题,我会第一时间重新画图并替换图片。</p>
<h2 id="042">0.4.2. 内容创作<a class="headerlink" href="#042" title="Permanent link">&para;</a></h2>
<h2 id="042">0.4.2. &nbsp; 内容创作<a class="headerlink" href="#042" title="Permanent link">&para;</a></h2>
<p>如果您想要参与本开源项目,包括翻译代码至其他编程语言、拓展文章内容等,那么需要实施 Pull Request 工作流程:</p>
<ol>
<li>登录 GitHub ,并 Fork <a href="https://github.com/krahets/hello-algo">本仓库</a> 至个人账号;</li>
@@ -1609,7 +1609,7 @@
<li>将本地更改 Commit ,并 Push 至远程仓库;</li>
<li>刷新仓库网页,点击“Create pull request”按钮发起拉取请求即可;</li>
</ol>
<h2 id="043-docker">0.4.3. Docker 部署<a class="headerlink" href="#043-docker" title="Permanent link">&para;</a></h2>
<h2 id="043-docker">0.4.3. &nbsp; Docker 部署<a class="headerlink" href="#043-docker" title="Permanent link">&para;</a></h2>
<p>你可以使用 Docker 来部署本项目。</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>git<span class="w"> </span>clone<span class="w"> </span>https://github.com/krahets/hello-algo.git
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a><span class="nb">cd</span><span class="w"> </span>hello-algo
@@ -1696,7 +1696,7 @@
<nav class="md-footer__inner md-grid" aria-label="页脚" >
<a href="../installation/" class="md-footer__link md-footer__link--prev" aria-label="上一页: 0.3. 编程环境安装" rel="prev">
<a href="../installation/" class="md-footer__link md-footer__link--prev" aria-label="上一页: 0.3. &amp;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>
</div>
@@ -1705,20 +1705,20 @@
<span class="md-footer__direction">
上一页
</span>
0.3. 编程环境安装
0.3. &nbsp; 编程环境安装
</div>
</div>
</a>
<a href="../../chapter_introduction/algorithms_are_everywhere/" class="md-footer__link md-footer__link--next" aria-label="下一页: 1.1. 算法无处不在" rel="next">
<a href="../../chapter_introduction/algorithms_are_everywhere/" class="md-footer__link md-footer__link--next" aria-label="下一页: 1.1. &amp;nbsp; 算法无处不在" rel="next">
<div class="md-footer__title">
<div class="md-ellipsis">
<span class="md-footer__direction">
下一页
</span>
1.1. 算法无处不在
1.1. &nbsp; 算法无处不在
</div>
</div>
<div class="md-footer__button md-icon">
+103 -103
View File
@@ -25,7 +25,7 @@
<title>0.3. 编程环境安装 - Hello 算法</title>
<title>0.3.   编程环境安装 - Hello 算法</title>
@@ -111,7 +111,7 @@
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
0.3. 编程环境安装
0.3. &nbsp; 编程环境安装
</span>
</div>
@@ -270,14 +270,14 @@
<label class="md-nav__link" for="__nav_1" id="__nav_1_label" tabindex="0">
0. 写在前面
0. &nbsp; &nbsp; 写在前面
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_1_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_1">
<span class="md-nav__icon md-icon"></span>
0. 写在前面
0. &nbsp; &nbsp; 写在前面
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -288,7 +288,7 @@
<li class="md-nav__item">
<a href="../about_the_book/" class="md-nav__link">
0.1. 关于本书
0.1. &nbsp; 关于本书
</a>
</li>
@@ -302,7 +302,7 @@
<li class="md-nav__item">
<a href="../suggestions/" class="md-nav__link">
0.2. 如何使用本书
0.2. &nbsp; 如何使用本书
</a>
</li>
@@ -325,12 +325,12 @@
<label class="md-nav__link md-nav__link--active" for="__toc">
0.3. 编程环境安装
0.3. &nbsp; 编程环境安装
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
0.3. 编程环境安装
0.3. &nbsp; 编程环境安装
</a>
@@ -350,63 +350,63 @@
<li class="md-nav__item">
<a href="#031-vscode" class="md-nav__link">
0.3.1. 安装 VSCode
0.3.1. &nbsp; 安装 VSCode
</a>
</li>
<li class="md-nav__item">
<a href="#032-java" class="md-nav__link">
0.3.2. Java 环境
0.3.2. &nbsp; Java 环境
</a>
</li>
<li class="md-nav__item">
<a href="#033-cc" class="md-nav__link">
0.3.3. C/C++ 环境
0.3.3. &nbsp; C/C++ 环境
</a>
</li>
<li class="md-nav__item">
<a href="#034-python" class="md-nav__link">
0.3.4. Python 环境
0.3.4. &nbsp; Python 环境
</a>
</li>
<li class="md-nav__item">
<a href="#035-go" class="md-nav__link">
0.3.5. Go 环境
0.3.5. &nbsp; Go 环境
</a>
</li>
<li class="md-nav__item">
<a href="#036-javascript" class="md-nav__link">
0.3.6. JavaScript 环境
0.3.6. &nbsp; JavaScript 环境
</a>
</li>
<li class="md-nav__item">
<a href="#037-c" class="md-nav__link">
0.3.7. C# 环境
0.3.7. &nbsp; C# 环境
</a>
</li>
<li class="md-nav__item">
<a href="#038-swift" class="md-nav__link">
0.3.8. Swift 环境
0.3.8. &nbsp; Swift 环境
</a>
</li>
<li class="md-nav__item">
<a href="#039-rust" class="md-nav__link">
0.3.9. Rust 环境
0.3.9. &nbsp; Rust 环境
</a>
</li>
@@ -427,7 +427,7 @@
<li class="md-nav__item">
<a href="../contribution/" class="md-nav__link">
0.4. 一起参与创作
0.4. &nbsp; 一起参与创作
</a>
</li>
@@ -466,14 +466,14 @@
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
1. 引言
1. &nbsp; &nbsp; 引言
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
1. 引言
1. &nbsp; &nbsp; 引言
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -484,7 +484,7 @@
<li class="md-nav__item">
<a href="../../chapter_introduction/algorithms_are_everywhere/" class="md-nav__link">
1.1. 算法无处不在
1.1. &nbsp; 算法无处不在
</a>
</li>
@@ -498,7 +498,7 @@
<li class="md-nav__item">
<a href="../../chapter_introduction/what_is_dsa/" class="md-nav__link">
1.2. 算法是什么
1.2. &nbsp; 算法是什么
</a>
</li>
@@ -543,14 +543,14 @@
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
2. 计算复杂度
2. &nbsp; &nbsp; 计算复杂度
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
2. 计算复杂度
2. &nbsp; &nbsp; 计算复杂度
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -561,7 +561,7 @@
<li class="md-nav__item">
<a href="../../chapter_computational_complexity/performance_evaluation/" class="md-nav__link">
2.1. 算法效率评估
2.1. &nbsp; 算法效率评估
</a>
</li>
@@ -575,7 +575,7 @@
<li class="md-nav__item">
<a href="../../chapter_computational_complexity/time_complexity/" class="md-nav__link">
2.2. 时间复杂度
2.2. &nbsp; 时间复杂度
</a>
</li>
@@ -589,7 +589,7 @@
<li class="md-nav__item">
<a href="../../chapter_computational_complexity/space_complexity/" class="md-nav__link">
2.3. 空间复杂度
2.3. &nbsp; 空间复杂度
</a>
</li>
@@ -603,7 +603,7 @@
<li class="md-nav__item">
<a href="../../chapter_computational_complexity/space_time_tradeoff/" class="md-nav__link">
2.4. 权衡时间与空间
2.4. &nbsp; 权衡时间与空间
</a>
</li>
@@ -617,7 +617,7 @@
<li class="md-nav__item">
<a href="../../chapter_computational_complexity/summary/" class="md-nav__link">
2.5. 小结
2.5. &nbsp; 小结
</a>
</li>
@@ -658,14 +658,14 @@
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
3. 数据结构简介
3. &nbsp; &nbsp; 数据结构简介
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4">
<span class="md-nav__icon md-icon"></span>
3. 数据结构简介
3. &nbsp; &nbsp; 数据结构简介
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -676,7 +676,7 @@
<li class="md-nav__item">
<a href="../../chapter_data_structure/data_and_memory/" class="md-nav__link">
3.1. 数据与内存
3.1. &nbsp; 数据与内存
</a>
</li>
@@ -690,7 +690,7 @@
<li class="md-nav__item">
<a href="../../chapter_data_structure/classification_of_data_structure/" class="md-nav__link">
3.2. 数据结构分类
3.2. &nbsp; 数据结构分类
</a>
</li>
@@ -704,7 +704,7 @@
<li class="md-nav__item">
<a href="../../chapter_data_structure/summary/" class="md-nav__link">
3.3. 小结
3.3. &nbsp; 小结
</a>
</li>
@@ -747,14 +747,14 @@
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
4. 数组与链表
4. &nbsp; &nbsp; 数组与链表
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
<span class="md-nav__icon md-icon"></span>
4. 数组与链表
4. &nbsp; &nbsp; 数组与链表
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -765,7 +765,7 @@
<li class="md-nav__item">
<a href="../../chapter_array_and_linkedlist/array/" class="md-nav__link">
4.1. 数组(Array
4.1. &nbsp; 数组(Array
</a>
</li>
@@ -779,7 +779,7 @@
<li class="md-nav__item">
<a href="../../chapter_array_and_linkedlist/linked_list/" class="md-nav__link">
4.2. 链表(LinkedList
4.2. &nbsp; 链表(LinkedList
</a>
</li>
@@ -793,7 +793,7 @@
<li class="md-nav__item">
<a href="../../chapter_array_and_linkedlist/list/" class="md-nav__link">
4.3. 列表(List
4.3. &nbsp; 列表(List
</a>
</li>
@@ -807,7 +807,7 @@
<li class="md-nav__item">
<a href="../../chapter_array_and_linkedlist/summary/" class="md-nav__link">
4.4. 小结
4.4. &nbsp; 小结
</a>
</li>
@@ -850,14 +850,14 @@
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
5. 栈与队列
5. &nbsp; &nbsp; 栈与队列
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6">
<span class="md-nav__icon md-icon"></span>
5. 栈与队列
5. &nbsp; &nbsp; 栈与队列
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -868,7 +868,7 @@
<li class="md-nav__item">
<a href="../../chapter_stack_and_queue/stack/" class="md-nav__link">
5.1. 栈(Stack
5.1. &nbsp; 栈(Stack
</a>
</li>
@@ -882,7 +882,7 @@
<li class="md-nav__item">
<a href="../../chapter_stack_and_queue/queue/" class="md-nav__link">
5.2. 队列(Queue
5.2. &nbsp; 队列(Queue
</a>
</li>
@@ -896,7 +896,7 @@
<li class="md-nav__item">
<a href="../../chapter_stack_and_queue/deque/" class="md-nav__link">
5.3. 双向队列(Deque
5.3. &nbsp; 双向队列(Deque
</a>
</li>
@@ -910,7 +910,7 @@
<li class="md-nav__item">
<a href="../../chapter_stack_and_queue/summary/" class="md-nav__link">
5.4. 小结
5.4. &nbsp; 小结
</a>
</li>
@@ -951,14 +951,14 @@
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0">
6. 散列表
6. &nbsp; &nbsp; 散列表
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_7">
<span class="md-nav__icon md-icon"></span>
6. 散列表
6. &nbsp; &nbsp; 散列表
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -969,7 +969,7 @@
<li class="md-nav__item">
<a href="../../chapter_hashing/hash_map/" class="md-nav__link">
6.1. 哈希表(HashMap
6.1. &nbsp; 哈希表(HashMap
</a>
</li>
@@ -983,7 +983,7 @@
<li class="md-nav__item">
<a href="../../chapter_hashing/hash_collision/" class="md-nav__link">
6.2. 哈希冲突处理
6.2. &nbsp; 哈希冲突处理
</a>
</li>
@@ -997,7 +997,7 @@
<li class="md-nav__item">
<a href="../../chapter_hashing/summary/" class="md-nav__link">
6.3. 小结
6.3. &nbsp; 小结
</a>
</li>
@@ -1042,14 +1042,14 @@
<label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
7. 二叉树
7. &nbsp; &nbsp; 二叉树
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_8">
<span class="md-nav__icon md-icon"></span>
7. 二叉树
7. &nbsp; &nbsp; 二叉树
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1060,7 +1060,7 @@
<li class="md-nav__item">
<a href="../../chapter_tree/binary_tree/" class="md-nav__link">
7.1. 二叉树(Binary Tree
7.1. &nbsp; 二叉树(Binary Tree
</a>
</li>
@@ -1074,7 +1074,7 @@
<li class="md-nav__item">
<a href="../../chapter_tree/binary_tree_traversal/" class="md-nav__link">
7.2. 二叉树遍历
7.2. &nbsp; 二叉树遍历
</a>
</li>
@@ -1088,7 +1088,7 @@
<li class="md-nav__item">
<a href="../../chapter_tree/binary_search_tree/" class="md-nav__link">
7.3. 二叉搜索树
7.3. &nbsp; 二叉搜索树
</a>
</li>
@@ -1102,7 +1102,7 @@
<li class="md-nav__item">
<a href="../../chapter_tree/avl_tree/" class="md-nav__link">
7.4. AVL 树 *
7.4. &nbsp; AVL 树 *
</a>
</li>
@@ -1116,7 +1116,7 @@
<li class="md-nav__item">
<a href="../../chapter_tree/summary/" class="md-nav__link">
7.5. 小结
7.5. &nbsp; 小结
</a>
</li>
@@ -1153,14 +1153,14 @@
<label class="md-nav__link" for="__nav_9" id="__nav_9_label" tabindex="0">
8. 堆
8. &nbsp; &nbsp;
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_9">
<span class="md-nav__icon md-icon"></span>
8. 堆
8. &nbsp; &nbsp;
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1171,7 +1171,7 @@
<li class="md-nav__item">
<a href="../../chapter_heap/heap/" class="md-nav__link">
8.1. 堆(Heap
8.1. &nbsp; 堆(Heap
</a>
</li>
@@ -1212,14 +1212,14 @@
<label class="md-nav__link" for="__nav_10" id="__nav_10_label" tabindex="0">
9. 图
9. &nbsp; &nbsp;
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_10_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_10">
<span class="md-nav__icon md-icon"></span>
9. 图
9. &nbsp; &nbsp;
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1230,7 +1230,7 @@
<li class="md-nav__item">
<a href="../../chapter_graph/graph/" class="md-nav__link">
9.1. 图(Graph
9.1. &nbsp; 图(Graph
</a>
</li>
@@ -1244,7 +1244,7 @@
<li class="md-nav__item">
<a href="../../chapter_graph/graph_operations/" class="md-nav__link">
9.2. 图基础操作
9.2. &nbsp; 图基础操作
</a>
</li>
@@ -1258,7 +1258,7 @@
<li class="md-nav__item">
<a href="../../chapter_graph/graph_traversal/" class="md-nav__link">
9.3. 图的遍历
9.3. &nbsp; 图的遍历
</a>
</li>
@@ -1301,14 +1301,14 @@
<label class="md-nav__link" for="__nav_11" id="__nav_11_label" tabindex="0">
10. 查找算法
10. &nbsp; &nbsp; 查找算法
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_11_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_11">
<span class="md-nav__icon md-icon"></span>
10. 查找算法
10. &nbsp; &nbsp; 查找算法
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1319,7 +1319,7 @@
<li class="md-nav__item">
<a href="../../chapter_searching/linear_search/" class="md-nav__link">
10.1. 线性查找
10.1. &nbsp; 线性查找
</a>
</li>
@@ -1333,7 +1333,7 @@
<li class="md-nav__item">
<a href="../../chapter_searching/binary_search/" class="md-nav__link">
10.2. 二分查找
10.2. &nbsp; 二分查找
</a>
</li>
@@ -1347,7 +1347,7 @@
<li class="md-nav__item">
<a href="../../chapter_searching/hashing_search/" class="md-nav__link">
10.3. 哈希查找
10.3. &nbsp; 哈希查找
</a>
</li>
@@ -1361,7 +1361,7 @@
<li class="md-nav__item">
<a href="../../chapter_searching/summary/" class="md-nav__link">
10.4. 小结
10.4. &nbsp; 小结
</a>
</li>
@@ -1408,14 +1408,14 @@
<label class="md-nav__link" for="__nav_12" id="__nav_12_label" tabindex="0">
11. 排序算法
11. &nbsp; &nbsp; 排序算法
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_12_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_12">
<span class="md-nav__icon md-icon"></span>
11. 排序算法
11. &nbsp; &nbsp; 排序算法
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1426,7 +1426,7 @@
<li class="md-nav__item">
<a href="../../chapter_sorting/intro_to_sort/" class="md-nav__link">
11.1. 排序简介
11.1. &nbsp; 排序简介
</a>
</li>
@@ -1440,7 +1440,7 @@
<li class="md-nav__item">
<a href="../../chapter_sorting/bubble_sort/" class="md-nav__link">
11.2. 冒泡排序
11.2. &nbsp; 冒泡排序
</a>
</li>
@@ -1454,7 +1454,7 @@
<li class="md-nav__item">
<a href="../../chapter_sorting/insertion_sort/" class="md-nav__link">
11.3. 插入排序
11.3. &nbsp; 插入排序
</a>
</li>
@@ -1468,7 +1468,7 @@
<li class="md-nav__item">
<a href="../../chapter_sorting/quick_sort/" class="md-nav__link">
11.4. 快速排序
11.4. &nbsp; 快速排序
</a>
</li>
@@ -1482,7 +1482,7 @@
<li class="md-nav__item">
<a href="../../chapter_sorting/merge_sort/" class="md-nav__link">
11.5. 归并排序
11.5. &nbsp; 归并排序
</a>
</li>
@@ -1496,7 +1496,7 @@
<li class="md-nav__item">
<a href="../../chapter_sorting/summary/" class="md-nav__link">
11.6. 小结
11.6. &nbsp; 小结
</a>
</li>
@@ -1584,63 +1584,63 @@
<li class="md-nav__item">
<a href="#031-vscode" class="md-nav__link">
0.3.1. 安装 VSCode
0.3.1. &nbsp; 安装 VSCode
</a>
</li>
<li class="md-nav__item">
<a href="#032-java" class="md-nav__link">
0.3.2. Java 环境
0.3.2. &nbsp; Java 环境
</a>
</li>
<li class="md-nav__item">
<a href="#033-cc" class="md-nav__link">
0.3.3. C/C++ 环境
0.3.3. &nbsp; C/C++ 环境
</a>
</li>
<li class="md-nav__item">
<a href="#034-python" class="md-nav__link">
0.3.4. Python 环境
0.3.4. &nbsp; Python 环境
</a>
</li>
<li class="md-nav__item">
<a href="#035-go" class="md-nav__link">
0.3.5. Go 环境
0.3.5. &nbsp; Go 环境
</a>
</li>
<li class="md-nav__item">
<a href="#036-javascript" class="md-nav__link">
0.3.6. JavaScript 环境
0.3.6. &nbsp; JavaScript 环境
</a>
</li>
<li class="md-nav__item">
<a href="#037-c" class="md-nav__link">
0.3.7. C# 环境
0.3.7. &nbsp; C# 环境
</a>
</li>
<li class="md-nav__item">
<a href="#038-swift" class="md-nav__link">
0.3.8. Swift 环境
0.3.8. &nbsp; Swift 环境
</a>
</li>
<li class="md-nav__item">
<a href="#039-rust" class="md-nav__link">
0.3.9. Rust 环境
0.3.9. &nbsp; Rust 环境
</a>
</li>
@@ -1669,47 +1669,47 @@
<h1 id="03">0.3. 编程环境安装<a class="headerlink" href="#03" title="Permanent link">&para;</a></h1>
<h1 id="03">0.3. &nbsp; 编程环境安装<a class="headerlink" href="#03" title="Permanent link">&para;</a></h1>
<p>TODO 视频教程)</p>
<h2 id="031-vscode">0.3.1. 安装 VSCode<a class="headerlink" href="#031-vscode" title="Permanent link">&para;</a></h2>
<h2 id="031-vscode">0.3.1. &nbsp; 安装 VSCode<a class="headerlink" href="#031-vscode" title="Permanent link">&para;</a></h2>
<p>本书推荐使用开源轻量的 VSCode 作为本地 IDE ,下载并安装 <a href="https://code.visualstudio.com/">VSCode</a></p>
<h2 id="032-java">0.3.2. Java 环境<a class="headerlink" href="#032-java" title="Permanent link">&para;</a></h2>
<h2 id="032-java">0.3.2. &nbsp; Java 环境<a class="headerlink" href="#032-java" title="Permanent link">&para;</a></h2>
<ol>
<li>下载并安装 <a href="https://jdk.java.net/18/">OpenJDK</a>(版本需满足 &gt; JDK 9)。</li>
<li>在 VSCode 的插件市场中搜索 <code>java</code> ,安装 Java Extension Pack 。</li>
</ol>
<h2 id="033-cc">0.3.3. C/C++ 环境<a class="headerlink" href="#033-cc" title="Permanent link">&para;</a></h2>
<h2 id="033-cc">0.3.3. &nbsp; C/C++ 环境<a class="headerlink" href="#033-cc" title="Permanent link">&para;</a></h2>
<ol>
<li>Windows 系统需要安装 <a href="https://sourceforge.net/projects/mingw-w64/files/">MinGW</a><a href="https://blog.csdn.net/qq_33698226/article/details/129031241">配置教程</a>),MacOS 自带 Clang 无需安装。</li>
<li>在 VSCode 的插件市场中搜索 <code>c++</code> ,安装 C/C++ Extension Pack 。</li>
</ol>
<h2 id="034-python">0.3.4. Python 环境<a class="headerlink" href="#034-python" title="Permanent link">&para;</a></h2>
<h2 id="034-python">0.3.4. &nbsp; Python 环境<a class="headerlink" href="#034-python" title="Permanent link">&para;</a></h2>
<ol>
<li>下载并安装 <a href="https://docs.conda.io/en/latest/miniconda.html">Miniconda3</a></li>
<li>在 VSCode 的插件市场中搜索 <code>python</code> ,安装 Python Extension Pack 。</li>
</ol>
<h2 id="035-go">0.3.5. Go 环境<a class="headerlink" href="#035-go" title="Permanent link">&para;</a></h2>
<h2 id="035-go">0.3.5. &nbsp; Go 环境<a class="headerlink" href="#035-go" title="Permanent link">&para;</a></h2>
<ol>
<li>下载并安装 <a href="https://go.dev/dl/">go</a></li>
<li>在 VSCode 的插件市场中搜索 <code>go</code> ,安装 Go 。</li>
<li>快捷键 <code>Ctrl + Shift + P</code> 呼出命令栏,输入 go ,选择 <code>Go: Install/Update Tools</code> ,全部勾选并安装即可。</li>
</ol>
<h2 id="036-javascript">0.3.6. JavaScript 环境<a class="headerlink" href="#036-javascript" title="Permanent link">&para;</a></h2>
<h2 id="036-javascript">0.3.6. &nbsp; JavaScript 环境<a class="headerlink" href="#036-javascript" title="Permanent link">&para;</a></h2>
<ol>
<li>下载并安装 <a href="https://nodejs.org/en/">node.js</a></li>
<li>在 VSCode 的插件市场中搜索 <code>javascript</code> ,安装 JavaScript (ES6) code snippets 。</li>
</ol>
<h2 id="037-c">0.3.7. C# 环境<a class="headerlink" href="#037-c" title="Permanent link">&para;</a></h2>
<h2 id="037-c">0.3.7. &nbsp; C# 环境<a class="headerlink" href="#037-c" title="Permanent link">&para;</a></h2>
<ol>
<li>下载并安装 <a href="https://dotnet.microsoft.com/en-us/download">.Net 6.0</a> </li>
<li>在 VSCode 的插件市场中搜索 <code>c#</code> ,安装 c# 。</li>
</ol>
<h2 id="038-swift">0.3.8. Swift 环境<a class="headerlink" href="#038-swift" title="Permanent link">&para;</a></h2>
<h2 id="038-swift">0.3.8. &nbsp; Swift 环境<a class="headerlink" href="#038-swift" title="Permanent link">&para;</a></h2>
<ol>
<li>下载并安装 <a href="https://www.swift.org/download/">Swift</a></li>
<li>在 VSCode 的插件市场中搜索 <code>swift</code>,安装 <a href="https://marketplace.visualstudio.com/items?itemName=sswg.swift-lang">Swift for Visual Studio Code</a></li>
</ol>
<h2 id="039-rust">0.3.9. Rust 环境<a class="headerlink" href="#039-rust" title="Permanent link">&para;</a></h2>
<h2 id="039-rust">0.3.9. &nbsp; Rust 环境<a class="headerlink" href="#039-rust" title="Permanent link">&para;</a></h2>
<ol>
<li>下载并安装 <a href="https://www.rust-lang.org/tools/install">Rust</a></li>
<li>在 VSCode 的插件市场中搜索 <code>rust</code>,安装 <a href="https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer">rust-analyzer</a></li>
@@ -1791,7 +1791,7 @@
<nav class="md-footer__inner md-grid" aria-label="页脚" >
<a href="../suggestions/" class="md-footer__link md-footer__link--prev" aria-label="上一页: 0.2. 如何使用本书" rel="prev">
<a href="../suggestions/" class="md-footer__link md-footer__link--prev" aria-label="上一页: 0.2. &amp;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>
</div>
@@ -1800,20 +1800,20 @@
<span class="md-footer__direction">
上一页
</span>
0.2. 如何使用本书
0.2. &nbsp; 如何使用本书
</div>
</div>
</a>
<a href="../contribution/" class="md-footer__link md-footer__link--next" aria-label="下一页: 0.4. 一起参与创作" rel="next">
<a href="../contribution/" class="md-footer__link md-footer__link--next" aria-label="下一页: 0.4. &amp;nbsp; 一起参与创作" rel="next">
<div class="md-footer__title">
<div class="md-ellipsis">
<span class="md-footer__direction">
下一页
</span>
0.4. 一起参与创作
0.4. &nbsp; 一起参与创作
</div>
</div>
<div class="md-footer__button md-icon">
+90 -90
View File
@@ -25,7 +25,7 @@
<title>0.2. 如何使用本书 - Hello 算法</title>
<title>0.2.   如何使用本书 - Hello 算法</title>
@@ -111,7 +111,7 @@
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
0.2. 如何使用本书
0.2. &nbsp; 如何使用本书
</span>
</div>
@@ -270,14 +270,14 @@
<label class="md-nav__link" for="__nav_1" id="__nav_1_label" tabindex="0">
0. 写在前面
0. &nbsp; &nbsp; 写在前面
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_1_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_1">
<span class="md-nav__icon md-icon"></span>
0. 写在前面
0. &nbsp; &nbsp; 写在前面
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -288,7 +288,7 @@
<li class="md-nav__item">
<a href="../about_the_book/" class="md-nav__link">
0.1. 关于本书
0.1. &nbsp; 关于本书
</a>
</li>
@@ -311,12 +311,12 @@
<label class="md-nav__link md-nav__link--active" for="__toc">
0.2. 如何使用本书
0.2. &nbsp; 如何使用本书
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
0.2. 如何使用本书
0.2. &nbsp; 如何使用本书
</a>
@@ -336,17 +336,17 @@
<li class="md-nav__item">
<a href="#021" class="md-nav__link">
0.2.1. 图文搭配学
0.2.1. &nbsp; 图文搭配学
</a>
</li>
<li class="md-nav__item">
<a href="#022" class="md-nav__link">
0.2.2. 代码实践学
0.2.2. &nbsp; 代码实践学
</a>
<nav class="md-nav" aria-label="0.2.2. 代码实践学">
<nav class="md-nav" aria-label="0.2.2. &nbsp; 代码实践学">
<ul class="md-nav__list">
<li class="md-nav__item">
@@ -370,14 +370,14 @@
<li class="md-nav__item">
<a href="#023" class="md-nav__link">
0.2.3. 提问讨论学
0.2.3. &nbsp; 提问讨论学
</a>
</li>
<li class="md-nav__item">
<a href="#024" class="md-nav__link">
0.2.4. 算法学习“三步走”
0.2.4. &nbsp; 算法学习“三步走”
</a>
</li>
@@ -398,7 +398,7 @@
<li class="md-nav__item">
<a href="../installation/" class="md-nav__link">
0.3. 编程环境安装
0.3. &nbsp; 编程环境安装
</a>
</li>
@@ -412,7 +412,7 @@
<li class="md-nav__item">
<a href="../contribution/" class="md-nav__link">
0.4. 一起参与创作
0.4. &nbsp; 一起参与创作
</a>
</li>
@@ -451,14 +451,14 @@
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
1. 引言
1. &nbsp; &nbsp; 引言
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
1. 引言
1. &nbsp; &nbsp; 引言
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -469,7 +469,7 @@
<li class="md-nav__item">
<a href="../../chapter_introduction/algorithms_are_everywhere/" class="md-nav__link">
1.1. 算法无处不在
1.1. &nbsp; 算法无处不在
</a>
</li>
@@ -483,7 +483,7 @@
<li class="md-nav__item">
<a href="../../chapter_introduction/what_is_dsa/" class="md-nav__link">
1.2. 算法是什么
1.2. &nbsp; 算法是什么
</a>
</li>
@@ -528,14 +528,14 @@
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
2. 计算复杂度
2. &nbsp; &nbsp; 计算复杂度
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
2. 计算复杂度
2. &nbsp; &nbsp; 计算复杂度
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -546,7 +546,7 @@
<li class="md-nav__item">
<a href="../../chapter_computational_complexity/performance_evaluation/" class="md-nav__link">
2.1. 算法效率评估
2.1. &nbsp; 算法效率评估
</a>
</li>
@@ -560,7 +560,7 @@
<li class="md-nav__item">
<a href="../../chapter_computational_complexity/time_complexity/" class="md-nav__link">
2.2. 时间复杂度
2.2. &nbsp; 时间复杂度
</a>
</li>
@@ -574,7 +574,7 @@
<li class="md-nav__item">
<a href="../../chapter_computational_complexity/space_complexity/" class="md-nav__link">
2.3. 空间复杂度
2.3. &nbsp; 空间复杂度
</a>
</li>
@@ -588,7 +588,7 @@
<li class="md-nav__item">
<a href="../../chapter_computational_complexity/space_time_tradeoff/" class="md-nav__link">
2.4. 权衡时间与空间
2.4. &nbsp; 权衡时间与空间
</a>
</li>
@@ -602,7 +602,7 @@
<li class="md-nav__item">
<a href="../../chapter_computational_complexity/summary/" class="md-nav__link">
2.5. 小结
2.5. &nbsp; 小结
</a>
</li>
@@ -643,14 +643,14 @@
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
3. 数据结构简介
3. &nbsp; &nbsp; 数据结构简介
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4">
<span class="md-nav__icon md-icon"></span>
3. 数据结构简介
3. &nbsp; &nbsp; 数据结构简介
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -661,7 +661,7 @@
<li class="md-nav__item">
<a href="../../chapter_data_structure/data_and_memory/" class="md-nav__link">
3.1. 数据与内存
3.1. &nbsp; 数据与内存
</a>
</li>
@@ -675,7 +675,7 @@
<li class="md-nav__item">
<a href="../../chapter_data_structure/classification_of_data_structure/" class="md-nav__link">
3.2. 数据结构分类
3.2. &nbsp; 数据结构分类
</a>
</li>
@@ -689,7 +689,7 @@
<li class="md-nav__item">
<a href="../../chapter_data_structure/summary/" class="md-nav__link">
3.3. 小结
3.3. &nbsp; 小结
</a>
</li>
@@ -732,14 +732,14 @@
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
4. 数组与链表
4. &nbsp; &nbsp; 数组与链表
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
<span class="md-nav__icon md-icon"></span>
4. 数组与链表
4. &nbsp; &nbsp; 数组与链表
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -750,7 +750,7 @@
<li class="md-nav__item">
<a href="../../chapter_array_and_linkedlist/array/" class="md-nav__link">
4.1. 数组(Array
4.1. &nbsp; 数组(Array
</a>
</li>
@@ -764,7 +764,7 @@
<li class="md-nav__item">
<a href="../../chapter_array_and_linkedlist/linked_list/" class="md-nav__link">
4.2. 链表(LinkedList
4.2. &nbsp; 链表(LinkedList
</a>
</li>
@@ -778,7 +778,7 @@
<li class="md-nav__item">
<a href="../../chapter_array_and_linkedlist/list/" class="md-nav__link">
4.3. 列表(List
4.3. &nbsp; 列表(List
</a>
</li>
@@ -792,7 +792,7 @@
<li class="md-nav__item">
<a href="../../chapter_array_and_linkedlist/summary/" class="md-nav__link">
4.4. 小结
4.4. &nbsp; 小结
</a>
</li>
@@ -835,14 +835,14 @@
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
5. 栈与队列
5. &nbsp; &nbsp; 栈与队列
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6">
<span class="md-nav__icon md-icon"></span>
5. 栈与队列
5. &nbsp; &nbsp; 栈与队列
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -853,7 +853,7 @@
<li class="md-nav__item">
<a href="../../chapter_stack_and_queue/stack/" class="md-nav__link">
5.1. 栈(Stack
5.1. &nbsp; 栈(Stack
</a>
</li>
@@ -867,7 +867,7 @@
<li class="md-nav__item">
<a href="../../chapter_stack_and_queue/queue/" class="md-nav__link">
5.2. 队列(Queue
5.2. &nbsp; 队列(Queue
</a>
</li>
@@ -881,7 +881,7 @@
<li class="md-nav__item">
<a href="../../chapter_stack_and_queue/deque/" class="md-nav__link">
5.3. 双向队列(Deque
5.3. &nbsp; 双向队列(Deque
</a>
</li>
@@ -895,7 +895,7 @@
<li class="md-nav__item">
<a href="../../chapter_stack_and_queue/summary/" class="md-nav__link">
5.4. 小结
5.4. &nbsp; 小结
</a>
</li>
@@ -936,14 +936,14 @@
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0">
6. 散列表
6. &nbsp; &nbsp; 散列表
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_7">
<span class="md-nav__icon md-icon"></span>
6. 散列表
6. &nbsp; &nbsp; 散列表
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -954,7 +954,7 @@
<li class="md-nav__item">
<a href="../../chapter_hashing/hash_map/" class="md-nav__link">
6.1. 哈希表(HashMap
6.1. &nbsp; 哈希表(HashMap
</a>
</li>
@@ -968,7 +968,7 @@
<li class="md-nav__item">
<a href="../../chapter_hashing/hash_collision/" class="md-nav__link">
6.2. 哈希冲突处理
6.2. &nbsp; 哈希冲突处理
</a>
</li>
@@ -982,7 +982,7 @@
<li class="md-nav__item">
<a href="../../chapter_hashing/summary/" class="md-nav__link">
6.3. 小结
6.3. &nbsp; 小结
</a>
</li>
@@ -1027,14 +1027,14 @@
<label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
7. 二叉树
7. &nbsp; &nbsp; 二叉树
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_8">
<span class="md-nav__icon md-icon"></span>
7. 二叉树
7. &nbsp; &nbsp; 二叉树
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1045,7 +1045,7 @@
<li class="md-nav__item">
<a href="../../chapter_tree/binary_tree/" class="md-nav__link">
7.1. 二叉树(Binary Tree
7.1. &nbsp; 二叉树(Binary Tree
</a>
</li>
@@ -1059,7 +1059,7 @@
<li class="md-nav__item">
<a href="../../chapter_tree/binary_tree_traversal/" class="md-nav__link">
7.2. 二叉树遍历
7.2. &nbsp; 二叉树遍历
</a>
</li>
@@ -1073,7 +1073,7 @@
<li class="md-nav__item">
<a href="../../chapter_tree/binary_search_tree/" class="md-nav__link">
7.3. 二叉搜索树
7.3. &nbsp; 二叉搜索树
</a>
</li>
@@ -1087,7 +1087,7 @@
<li class="md-nav__item">
<a href="../../chapter_tree/avl_tree/" class="md-nav__link">
7.4. AVL 树 *
7.4. &nbsp; AVL 树 *
</a>
</li>
@@ -1101,7 +1101,7 @@
<li class="md-nav__item">
<a href="../../chapter_tree/summary/" class="md-nav__link">
7.5. 小结
7.5. &nbsp; 小结
</a>
</li>
@@ -1138,14 +1138,14 @@
<label class="md-nav__link" for="__nav_9" id="__nav_9_label" tabindex="0">
8. 堆
8. &nbsp; &nbsp;
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_9">
<span class="md-nav__icon md-icon"></span>
8. 堆
8. &nbsp; &nbsp;
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1156,7 +1156,7 @@
<li class="md-nav__item">
<a href="../../chapter_heap/heap/" class="md-nav__link">
8.1. 堆(Heap
8.1. &nbsp; 堆(Heap
</a>
</li>
@@ -1197,14 +1197,14 @@
<label class="md-nav__link" for="__nav_10" id="__nav_10_label" tabindex="0">
9. 图
9. &nbsp; &nbsp;
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_10_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_10">
<span class="md-nav__icon md-icon"></span>
9. 图
9. &nbsp; &nbsp;
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1215,7 +1215,7 @@
<li class="md-nav__item">
<a href="../../chapter_graph/graph/" class="md-nav__link">
9.1. 图(Graph
9.1. &nbsp; 图(Graph
</a>
</li>
@@ -1229,7 +1229,7 @@
<li class="md-nav__item">
<a href="../../chapter_graph/graph_operations/" class="md-nav__link">
9.2. 图基础操作
9.2. &nbsp; 图基础操作
</a>
</li>
@@ -1243,7 +1243,7 @@
<li class="md-nav__item">
<a href="../../chapter_graph/graph_traversal/" class="md-nav__link">
9.3. 图的遍历
9.3. &nbsp; 图的遍历
</a>
</li>
@@ -1286,14 +1286,14 @@
<label class="md-nav__link" for="__nav_11" id="__nav_11_label" tabindex="0">
10. 查找算法
10. &nbsp; &nbsp; 查找算法
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_11_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_11">
<span class="md-nav__icon md-icon"></span>
10. 查找算法
10. &nbsp; &nbsp; 查找算法
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1304,7 +1304,7 @@
<li class="md-nav__item">
<a href="../../chapter_searching/linear_search/" class="md-nav__link">
10.1. 线性查找
10.1. &nbsp; 线性查找
</a>
</li>
@@ -1318,7 +1318,7 @@
<li class="md-nav__item">
<a href="../../chapter_searching/binary_search/" class="md-nav__link">
10.2. 二分查找
10.2. &nbsp; 二分查找
</a>
</li>
@@ -1332,7 +1332,7 @@
<li class="md-nav__item">
<a href="../../chapter_searching/hashing_search/" class="md-nav__link">
10.3. 哈希查找
10.3. &nbsp; 哈希查找
</a>
</li>
@@ -1346,7 +1346,7 @@
<li class="md-nav__item">
<a href="../../chapter_searching/summary/" class="md-nav__link">
10.4. 小结
10.4. &nbsp; 小结
</a>
</li>
@@ -1393,14 +1393,14 @@
<label class="md-nav__link" for="__nav_12" id="__nav_12_label" tabindex="0">
11. 排序算法
11. &nbsp; &nbsp; 排序算法
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_12_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_12">
<span class="md-nav__icon md-icon"></span>
11. 排序算法
11. &nbsp; &nbsp; 排序算法
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1411,7 +1411,7 @@
<li class="md-nav__item">
<a href="../../chapter_sorting/intro_to_sort/" class="md-nav__link">
11.1. 排序简介
11.1. &nbsp; 排序简介
</a>
</li>
@@ -1425,7 +1425,7 @@
<li class="md-nav__item">
<a href="../../chapter_sorting/bubble_sort/" class="md-nav__link">
11.2. 冒泡排序
11.2. &nbsp; 冒泡排序
</a>
</li>
@@ -1439,7 +1439,7 @@
<li class="md-nav__item">
<a href="../../chapter_sorting/insertion_sort/" class="md-nav__link">
11.3. 插入排序
11.3. &nbsp; 插入排序
</a>
</li>
@@ -1453,7 +1453,7 @@
<li class="md-nav__item">
<a href="../../chapter_sorting/quick_sort/" class="md-nav__link">
11.4. 快速排序
11.4. &nbsp; 快速排序
</a>
</li>
@@ -1467,7 +1467,7 @@
<li class="md-nav__item">
<a href="../../chapter_sorting/merge_sort/" class="md-nav__link">
11.5. 归并排序
11.5. &nbsp; 归并排序
</a>
</li>
@@ -1481,7 +1481,7 @@
<li class="md-nav__item">
<a href="../../chapter_sorting/summary/" class="md-nav__link">
11.6. 小结
11.6. &nbsp; 小结
</a>
</li>
@@ -1569,17 +1569,17 @@
<li class="md-nav__item">
<a href="#021" class="md-nav__link">
0.2.1. 图文搭配学
0.2.1. &nbsp; 图文搭配学
</a>
</li>
<li class="md-nav__item">
<a href="#022" class="md-nav__link">
0.2.2. 代码实践学
0.2.2. &nbsp; 代码实践学
</a>
<nav class="md-nav" aria-label="0.2.2. 代码实践学">
<nav class="md-nav" aria-label="0.2.2. &nbsp; 代码实践学">
<ul class="md-nav__list">
<li class="md-nav__item">
@@ -1603,14 +1603,14 @@
<li class="md-nav__item">
<a href="#023" class="md-nav__link">
0.2.3. 提问讨论学
0.2.3. &nbsp; 提问讨论学
</a>
</li>
<li class="md-nav__item">
<a href="#024" class="md-nav__link">
0.2.4. 算法学习“三步走”
0.2.4. &nbsp; 算法学习“三步走”
</a>
</li>
@@ -1639,12 +1639,12 @@
<h1 id="02">0.2. 如何使用本书<a class="headerlink" href="#02" title="Permanent link">&para;</a></h1>
<h2 id="021">0.2.1. 图文搭配学<a class="headerlink" href="#021" title="Permanent link">&para;</a></h2>
<h1 id="02">0.2. &nbsp; 如何使用本书<a class="headerlink" href="#02" title="Permanent link">&para;</a></h1>
<h2 id="021">0.2.1. &nbsp; 图文搭配学<a class="headerlink" href="#021" title="Permanent link">&para;</a></h2>
<p>视频和图片相比于文字的信息密度和结构化程度更高,更容易让人理解。在本书中,重点和难点知识会主要以动画、图解的形式呈现,而文字的作用则是作为动画和图的解释与补充。</p>
<p>在阅读本书的过程中,若发现某段内容提供了动画或图解,<strong>建议你以图为主线</strong>,将文字内容(一般在图的上方)对齐到图中内容,综合来理解。</p>
<p><img alt="animation" src="../suggestions.assets/animation.gif" /></p>
<h2 id="022">0.2.2. 代码实践学<a class="headerlink" href="#022" title="Permanent link">&para;</a></h2>
<h2 id="022">0.2.2. &nbsp; 代码实践学<a class="headerlink" href="#022" title="Permanent link">&para;</a></h2>
<div class="admonition tip">
<p class="admonition-title">前置工作</p>
<p>如果没有本地编程环境,可以参照下节 <a href="https://www.hello-algo.com/chapter_preface/installation/">编程环境安装</a></p>
@@ -1664,11 +1664,11 @@
<p class="admonition-title">代码学习建议</p>
<p>若学习时间紧张,<strong>请至少将所有代码通读并运行一遍</strong>。若时间允许,<strong>强烈建议对照着代码自己敲一遍</strong>,逐渐锻炼肌肉记忆。相比于读代码,写代码的过程往往能带来新的收获。</p>
</div>
<h2 id="023">0.2.3. 提问讨论学<a class="headerlink" href="#023" title="Permanent link">&para;</a></h2>
<h2 id="023">0.2.3. &nbsp; 提问讨论学<a class="headerlink" href="#023" title="Permanent link">&para;</a></h2>
<p>阅读本书时,请不要“惯着”那些弄不明白的知识点。如果有任何疑惑,<strong>可以在评论区留下你的问题</strong>,小伙伴们和我都会给予解答(您一般 3 天内会得到回复)。</p>
<p>同时,也希望你可以多花时间逛逛评论区。一方面,可以看看大家遇到了什么问题,反过来查漏补缺,这往往可以引起更加深度的思考。另一方面,也希望你可以慷慨地解答小伙伴们的问题、分享自己的见解,大家一起加油与进步!</p>
<p><img alt="comment" src="../suggestions.assets/comment.gif" /></p>
<h2 id="024">0.2.4. 算法学习“三步走”<a class="headerlink" href="#024" title="Permanent link">&para;</a></h2>
<h2 id="024">0.2.4. &nbsp; 算法学习“三步走”<a class="headerlink" href="#024" title="Permanent link">&para;</a></h2>
<p><strong>第一阶段,算法入门,也正是本书的定位</strong>。熟悉各种数据结构的特点、用法,学习各种算法的工作原理、用途、效率等。</p>
<p><strong>第二阶段,刷算法题</strong>。可以先从热门题单开刷,推荐 <a href="https://leetcode.cn/problem-list/xb9nqhhg/">剑指 Offer</a><a href="https://leetcode.cn/problem-list/2cktkvj/">LeetCode 热题 HOT 100</a> ,先积累至少 100 道题量,熟悉大多数的算法问题。刚开始刷题时,“遗忘”是最大的困扰点,但这是很正常的,请不要担心。学习中有一种概念叫“周期性回顾”,同一道题隔段时间做一次,当做了三遍以上,往往就能牢记于心了。</p>
<p><strong>第三阶段,搭建知识体系</strong>。在学习方面,可以阅读算法专栏文章、解题框架、算法教材,不断地丰富知识体系。在刷题方面,可以开始采用进阶刷题方案,例如按专题分类、一题多解、一解多题等,刷题方案在社区中可以找到一些讲解,在此不做赘述。</p>
@@ -1750,7 +1750,7 @@
<nav class="md-footer__inner md-grid" aria-label="页脚" >
<a href="../about_the_book/" class="md-footer__link md-footer__link--prev" aria-label="上一页: 0.1. 关于本书" rel="prev">
<a href="../about_the_book/" class="md-footer__link md-footer__link--prev" aria-label="上一页: 0.1. &amp;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>
</div>
@@ -1759,20 +1759,20 @@
<span class="md-footer__direction">
上一页
</span>
0.1. 关于本书
0.1. &nbsp; 关于本书
</div>
</div>
</a>
<a href="../installation/" class="md-footer__link md-footer__link--next" aria-label="下一页: 0.3. 编程环境安装" rel="next">
<a href="../installation/" class="md-footer__link md-footer__link--next" aria-label="下一页: 0.3. &amp;nbsp; 编程环境安装" rel="next">
<div class="md-footer__title">
<div class="md-ellipsis">
<span class="md-footer__direction">
下一页
</span>
0.3. 编程环境安装
0.3. &nbsp; 编程环境安装
</div>
</div>
<div class="md-footer__button md-icon">