This commit is contained in:
krahets
2023-05-21 19:29:51 +08:00
parent 2adbd1b856
commit 61055d21bd
83 changed files with 11043 additions and 13422 deletions

View File

@@ -25,7 +25,7 @@
<title>14.2.   一起参与创作 - Hello 算法</title>
<title>13.2.   一起参与创作 - Hello 算法</title>
@@ -79,7 +79,7 @@
<div data-md-component="skip">
<a href="#142" class="md-skip">
<a href="#132" class="md-skip">
跳转至
</a>
@@ -113,7 +113,7 @@
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
14.2. &nbsp; 一起参与创作
13.2. &nbsp; 一起参与创作
</span>
</div>
@@ -865,17 +865,19 @@
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0">
6. &nbsp; &nbsp; 二分查找
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. &nbsp; &nbsp; 二分查找
6. &nbsp; &nbsp; 散列表
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -885,8 +887,8 @@
<li class="md-nav__item">
<a href="../../chapter_binary_search/binary_search/" class="md-nav__link">
6.1. &nbsp; 二分查找
<a href="../../chapter_hashing/hash_map/" class="md-nav__link">
6.1. &nbsp; 哈希表
</a>
</li>
@@ -899,8 +901,22 @@
<li class="md-nav__item">
<a href="../../chapter_binary_search/binary_search_edge/" class="md-nav__link">
6.2. &nbsp; 二分查找边界
<a href="../../chapter_hashing/hash_collision/" class="md-nav__link">
6.2. &nbsp; 哈希冲突处理
</a>
</li>
<li class="md-nav__item">
<a href="../../chapter_hashing/summary/" class="md-nav__link">
6.3. &nbsp; 小结
</a>
</li>
@@ -938,17 +954,23 @@
<label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
7. &nbsp; &nbsp; 散列表
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. &nbsp; &nbsp; 散列表
7. &nbsp; &nbsp;
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -958,8 +980,8 @@
<li class="md-nav__item">
<a href="../../chapter_hashing/hash_map/" class="md-nav__link">
7.1. &nbsp; 哈希表
<a href="../../chapter_tree/binary_tree/" class="md-nav__link">
7.1. &nbsp; 二叉树
</a>
</li>
@@ -972,8 +994,8 @@
<li class="md-nav__item">
<a href="../../chapter_hashing/hash_collision/" class="md-nav__link">
7.2. &nbsp; 哈希冲突处理
<a href="../../chapter_tree/binary_tree_traversal/" class="md-nav__link">
7.2. &nbsp; 二叉树遍历
</a>
</li>
@@ -986,8 +1008,50 @@
<li class="md-nav__item">
<a href="../../chapter_hashing/summary/" class="md-nav__link">
7.3. &nbsp; 小结
<a href="../../chapter_tree/array_representation_of_tree/" class="md-nav__link">
7.3. &nbsp; 二叉树数组表示
</a>
</li>
<li class="md-nav__item">
<a href="../../chapter_tree/binary_search_tree/" class="md-nav__link">
7.4. &nbsp; 二叉搜索树
</a>
</li>
<li class="md-nav__item">
<a href="../../chapter_tree/avl_tree/" class="md-nav__link">
7.5. &nbsp; AVL 树 *
</a>
</li>
<li class="md-nav__item">
<a href="../../chapter_tree/summary/" class="md-nav__link">
7.6. &nbsp; 小结
</a>
</li>
@@ -1025,23 +1089,17 @@
<label class="md-nav__link" for="__nav_9" id="__nav_9_label" tabindex="0">
8. &nbsp; &nbsp;
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. &nbsp; &nbsp;
8. &nbsp; &nbsp;
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1051,8 +1109,8 @@
<li class="md-nav__item">
<a href="../../chapter_tree/binary_tree/" class="md-nav__link">
8.1. &nbsp; 二叉树
<a href="../../chapter_heap/heap/" class="md-nav__link">
8.1. &nbsp;
</a>
</li>
@@ -1065,8 +1123,8 @@
<li class="md-nav__item">
<a href="../../chapter_tree/binary_tree_traversal/" class="md-nav__link">
8.2. &nbsp; 二叉树遍历
<a href="../../chapter_heap/build_heap/" class="md-nav__link">
8.2. &nbsp; 建堆操作 *
</a>
</li>
@@ -1079,50 +1137,8 @@
<li class="md-nav__item">
<a href="../../chapter_tree/array_representation_of_tree/" class="md-nav__link">
8.3. &nbsp; 二叉树数组表示
</a>
</li>
<li class="md-nav__item">
<a href="../../chapter_tree/binary_search_tree/" class="md-nav__link">
8.4. &nbsp; 二叉搜索树
</a>
</li>
<li class="md-nav__item">
<a href="../../chapter_tree/avl_tree/" class="md-nav__link">
8.5. &nbsp; AVL 树 *
</a>
</li>
<li class="md-nav__item">
<a href="../../chapter_tree/summary/" class="md-nav__link">
8.6. &nbsp; 小结
<a href="../../chapter_heap/summary/" class="md-nav__link">
8.3. &nbsp; 小结
</a>
</li>
@@ -1160,17 +1176,19 @@
<label class="md-nav__link" for="__nav_10" id="__nav_10_label" tabindex="0">
9. &nbsp; &nbsp;
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. &nbsp; &nbsp;
9. &nbsp; &nbsp;
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1180,8 +1198,8 @@
<li class="md-nav__item">
<a href="../../chapter_heap/heap/" class="md-nav__link">
9.1. &nbsp;
<a href="../../chapter_graph/graph/" class="md-nav__link">
9.1. &nbsp;
</a>
</li>
@@ -1194,8 +1212,8 @@
<li class="md-nav__item">
<a href="../../chapter_heap/build_heap/" class="md-nav__link">
9.2. &nbsp; 建堆操作 *
<a href="../../chapter_graph/graph_operations/" class="md-nav__link">
9.2. &nbsp; 图基础操作
</a>
</li>
@@ -1208,8 +1226,22 @@
<li class="md-nav__item">
<a href="../../chapter_heap/summary/" class="md-nav__link">
9.3. &nbsp; 小结
<a href="../../chapter_graph/graph_traversal/" class="md-nav__link">
9.3. &nbsp; 图的遍历
</a>
</li>
<li class="md-nav__item">
<a href="../../chapter_graph/summary/" class="md-nav__link">
9.4. &nbsp; 小结
</a>
</li>
@@ -1249,17 +1281,19 @@
<label class="md-nav__link" for="__nav_11" id="__nav_11_label" tabindex="0">
10. &nbsp; &nbsp;
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. &nbsp; &nbsp;
10. &nbsp; &nbsp; 搜索算法
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1269,8 +1303,8 @@
<li class="md-nav__item">
<a href="../../chapter_graph/graph/" class="md-nav__link">
10.1. &nbsp;
<a href="../../chapter_searching/binary_search/" class="md-nav__link">
10.1. &nbsp; 二分查找New
</a>
</li>
@@ -1283,8 +1317,8 @@
<li class="md-nav__item">
<a href="../../chapter_graph/graph_operations/" class="md-nav__link">
10.2. &nbsp; 图基础操作
<a href="../../chapter_searching/binary_search_edge/" class="md-nav__link">
10.2. &nbsp; 二分查找边界New
</a>
</li>
@@ -1297,8 +1331,8 @@
<li class="md-nav__item">
<a href="../../chapter_graph/graph_traversal/" class="md-nav__link">
10.3. &nbsp; 图的遍历
<a href="../../chapter_searching/replace_linear_by_hashing/" class="md-nav__link">
10.3. &nbsp; 哈希优化策略
</a>
</li>
@@ -1311,8 +1345,22 @@
<li class="md-nav__item">
<a href="../../chapter_graph/summary/" class="md-nav__link">
10.4. &nbsp; 小结
<a href="../../chapter_searching/searching_algorithm_revisited/" class="md-nav__link">
10.4. &nbsp; 重识搜索算法
</a>
</li>
<li class="md-nav__item">
<a href="../../chapter_searching/summary/" class="md-nav__link">
10.5. &nbsp; 小结
</a>
</li>
@@ -1536,101 +1584,14 @@
<label class="md-nav__link" for="__nav_13" id="__nav_13_label" tabindex="0">
12. &nbsp; &nbsp; 搜索算法
12. &nbsp; &nbsp; 回溯算法
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_13_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_13">
<span class="md-nav__icon md-icon"></span>
12. &nbsp; &nbsp; 搜索算法
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../chapter_searching/searching_algorithm_revisited/" class="md-nav__link">
12.1. &nbsp; 搜索算法New
</a>
</li>
<li class="md-nav__item">
<a href="../../chapter_searching/replace_linear_by_hashing/" class="md-nav__link">
12.2. &nbsp; 哈希优化策略
</a>
</li>
<li class="md-nav__item">
<a href="../../chapter_searching/summary/" class="md-nav__link">
12.3. &nbsp; 小结
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_14" >
<label class="md-nav__link" for="__nav_14" id="__nav_14_label" tabindex="0">
13. &nbsp; &nbsp; 回溯算法
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_14_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_14">
<span class="md-nav__icon md-icon"></span>
13. &nbsp; &nbsp; 回溯算法
12. &nbsp; &nbsp; 回溯算法
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1641,7 +1602,7 @@
<li class="md-nav__item">
<a href="../../chapter_backtracking/backtracking_algorithm/" class="md-nav__link">
13.1. &nbsp; 回溯算法New
12.1. &nbsp; 回溯算法New
</a>
</li>
@@ -1655,7 +1616,7 @@
<li class="md-nav__item">
<a href="../../chapter_backtracking/permutations_problem/" class="md-nav__link">
13.2. &nbsp; 全排列问题New
12.2. &nbsp; 全排列问题New
</a>
</li>
@@ -1669,7 +1630,7 @@
<li class="md-nav__item">
<a href="../../chapter_backtracking/n_queens_problem/" class="md-nav__link">
13.3. &nbsp; N 皇后问题New
12.3. &nbsp; N 皇后问题New
</a>
</li>
@@ -1699,7 +1660,7 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_15" checked>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_14" checked>
@@ -1709,15 +1670,15 @@
<label class="md-nav__link" for="__nav_15" id="__nav_15_label" tabindex="0">
14. &nbsp; &nbsp; 附录
<label class="md-nav__link" for="__nav_14" id="__nav_14_label" tabindex="0">
13. &nbsp; &nbsp; 附录
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_15_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_15">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_14_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_14">
<span class="md-nav__icon md-icon"></span>
14. &nbsp; &nbsp; 附录
13. &nbsp; &nbsp; 附录
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1728,7 +1689,7 @@
<li class="md-nav__item">
<a href="../installation/" class="md-nav__link">
14.1. &nbsp; 编程环境安装
13.1. &nbsp; 编程环境安装
</a>
</li>
@@ -1751,12 +1712,12 @@
<label class="md-nav__link md-nav__link--active" for="__toc">
14.2. &nbsp; 一起参与创作
13.2. &nbsp; 一起参与创作
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
14.2. &nbsp; 一起参与创作
13.2. &nbsp; 一起参与创作
</a>
@@ -1775,22 +1736,22 @@
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#1421" class="md-nav__link">
14.2.1. &nbsp; 内容微调
<a href="#1321" class="md-nav__link">
13.2.1. &nbsp; 内容微调
</a>
</li>
<li class="md-nav__item">
<a href="#1422" class="md-nav__link">
14.2.2. &nbsp; 内容创作
<a href="#1322" class="md-nav__link">
13.2.2. &nbsp; 内容创作
</a>
</li>
<li class="md-nav__item">
<a href="#1423-docker" class="md-nav__link">
14.2.3. &nbsp; Docker 部署
<a href="#1323-docker" class="md-nav__link">
13.2.3. &nbsp; Docker 部署
</a>
</li>
@@ -1825,7 +1786,7 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_16" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_15" >
@@ -1842,8 +1803,8 @@
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_16_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_16">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_15_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_15">
<span class="md-nav__icon md-icon"></span>
参考文献
</label>
@@ -1884,22 +1845,22 @@
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#1421" class="md-nav__link">
14.2.1. &nbsp; 内容微调
<a href="#1321" class="md-nav__link">
13.2.1. &nbsp; 内容微调
</a>
</li>
<li class="md-nav__item">
<a href="#1422" class="md-nav__link">
14.2.2. &nbsp; 内容创作
<a href="#1322" class="md-nav__link">
13.2.2. &nbsp; 内容创作
</a>
</li>
<li class="md-nav__item">
<a href="#1423-docker" class="md-nav__link">
14.2.3. &nbsp; Docker 部署
<a href="#1323-docker" class="md-nav__link">
13.2.3. &nbsp; Docker 部署
</a>
</li>
@@ -1927,13 +1888,13 @@
<h1 id="142">14.2. &nbsp; 一起参与创作<a class="headerlink" href="#142" title="Permanent link">&para;</a></h1>
<h1 id="132">13.2. &nbsp; 一起参与创作<a class="headerlink" href="#132" title="Permanent link">&para;</a></h1>
<div class="admonition success">
<p class="admonition-title">开源的魅力</p>
<p>纸质书籍的两次印刷的间隔时间往往需要数年,内容更新非常不方便。</br>但在本开源书中,内容更迭的时间被缩短至数日甚至几个小时。</p>
</div>
<p>由于作者能力有限,书中难免存在一些遗漏和错误,请您谅解。如果您发现了笔误、失效链接、内容缺失、文字歧义、解释不清晰或行文结构不合理等问题,请协助我们进行修正,以帮助其他读者获得更优质的学习资源。所有<a href="https://github.com/krahets/hello-algo/graphs/contributors">撰稿人</a>将在仓库和网站主页上展示,以感谢他们对开源社区的无私奉献!</p>
<h2 id="1421">14.2.1. &nbsp; 内容微调<a class="headerlink" href="#1421" title="Permanent link">&para;</a></h2>
<h2 id="1321">13.2.1. &nbsp; 内容微调<a class="headerlink" href="#1321" title="Permanent link">&para;</a></h2>
<p>在每个页面的右上角有一个「编辑」图标,您可以按照以下步骤修改文本或代码:</p>
<ol>
<li>点击编辑按钮,如果遇到“需要 Fork 此仓库”的提示,请同意该操作;</li>
@@ -1944,7 +1905,7 @@
<p align="center"> Fig. 页面编辑按键 </p>
<p>由于图片无法直接修改,因此需要通过新建 <a href="https://github.com/krahets/hello-algo/issues">Issue</a> 或评论留言来描述图片问题,我们会尽快重新绘制并替换图片。</p>
<h2 id="1422">14.2.2. &nbsp; 内容创作<a class="headerlink" href="#1422" title="Permanent link">&para;</a></h2>
<h2 id="1322">13.2.2. &nbsp; 内容创作<a class="headerlink" href="#1322" title="Permanent link">&para;</a></h2>
<p>如果您有兴趣参与此开源项目,包括将代码翻译成其他编程语言、扩展文章内容等,那么需要实施 Pull Request 工作流程:</p>
<ol>
<li>登录 GitHub ,将<a href="https://github.com/krahets/hello-algo">本仓库</a> Fork 到个人账号下;</li>
@@ -1953,7 +1914,7 @@
<li>将本地所做更改 Commit ,然后 Push 至远程仓库;</li>
<li>刷新仓库网页点击“Create pull request”按钮即可发起拉取请求</li>
</ol>
<h2 id="1423-docker">14.2.3. &nbsp; Docker 部署<a class="headerlink" href="#1423-docker" title="Permanent link">&para;</a></h2>
<h2 id="1323-docker">13.2.3. &nbsp; Docker 部署<a class="headerlink" href="#1323-docker" title="Permanent link">&para;</a></h2>
<p>我们可以通过 Docker 来部署本项目。执行以下脚本,稍等片刻后,即可使用浏览器打开 <code>http://localhost:8000</code> 来访问本项目。</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
@@ -2039,7 +2000,7 @@
<nav class="md-footer__inner md-grid" aria-label="页脚" >
<a href="../installation/" class="md-footer__link md-footer__link--prev" aria-label="上一页: 14.1. &amp;nbsp; 编程环境安装" rel="prev">
<a href="../installation/" class="md-footer__link md-footer__link--prev" aria-label="上一页: 13.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>
@@ -2048,7 +2009,7 @@
上一页
</span>
<div class="md-ellipsis">
14.1. &nbsp; 编程环境安装
13.1. &nbsp; 编程环境安装
</div>
</div>
</a>

View File

@@ -25,7 +25,7 @@
<title>14.1.   编程环境安装 - Hello 算法</title>
<title>13.1.   编程环境安装 - Hello 算法</title>
@@ -79,7 +79,7 @@
<div data-md-component="skip">
<a href="#141" class="md-skip">
<a href="#131" class="md-skip">
跳转至
</a>
@@ -113,7 +113,7 @@
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
14.1. &nbsp; 编程环境安装
13.1. &nbsp; 编程环境安装
</span>
</div>
@@ -865,17 +865,19 @@
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0">
6. &nbsp; &nbsp; 二分查找
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. &nbsp; &nbsp; 二分查找
6. &nbsp; &nbsp; 散列表
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -885,8 +887,8 @@
<li class="md-nav__item">
<a href="../../chapter_binary_search/binary_search/" class="md-nav__link">
6.1. &nbsp; 二分查找
<a href="../../chapter_hashing/hash_map/" class="md-nav__link">
6.1. &nbsp; 哈希表
</a>
</li>
@@ -899,8 +901,22 @@
<li class="md-nav__item">
<a href="../../chapter_binary_search/binary_search_edge/" class="md-nav__link">
6.2. &nbsp; 二分查找边界
<a href="../../chapter_hashing/hash_collision/" class="md-nav__link">
6.2. &nbsp; 哈希冲突处理
</a>
</li>
<li class="md-nav__item">
<a href="../../chapter_hashing/summary/" class="md-nav__link">
6.3. &nbsp; 小结
</a>
</li>
@@ -938,17 +954,23 @@
<label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
7. &nbsp; &nbsp; 散列表
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. &nbsp; &nbsp; 散列表
7. &nbsp; &nbsp;
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -958,8 +980,8 @@
<li class="md-nav__item">
<a href="../../chapter_hashing/hash_map/" class="md-nav__link">
7.1. &nbsp; 哈希表
<a href="../../chapter_tree/binary_tree/" class="md-nav__link">
7.1. &nbsp; 二叉树
</a>
</li>
@@ -972,8 +994,8 @@
<li class="md-nav__item">
<a href="../../chapter_hashing/hash_collision/" class="md-nav__link">
7.2. &nbsp; 哈希冲突处理
<a href="../../chapter_tree/binary_tree_traversal/" class="md-nav__link">
7.2. &nbsp; 二叉树遍历
</a>
</li>
@@ -986,8 +1008,50 @@
<li class="md-nav__item">
<a href="../../chapter_hashing/summary/" class="md-nav__link">
7.3. &nbsp; 小结
<a href="../../chapter_tree/array_representation_of_tree/" class="md-nav__link">
7.3. &nbsp; 二叉树数组表示
</a>
</li>
<li class="md-nav__item">
<a href="../../chapter_tree/binary_search_tree/" class="md-nav__link">
7.4. &nbsp; 二叉搜索树
</a>
</li>
<li class="md-nav__item">
<a href="../../chapter_tree/avl_tree/" class="md-nav__link">
7.5. &nbsp; AVL 树 *
</a>
</li>
<li class="md-nav__item">
<a href="../../chapter_tree/summary/" class="md-nav__link">
7.6. &nbsp; 小结
</a>
</li>
@@ -1025,23 +1089,17 @@
<label class="md-nav__link" for="__nav_9" id="__nav_9_label" tabindex="0">
8. &nbsp; &nbsp;
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. &nbsp; &nbsp;
8. &nbsp; &nbsp;
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1051,8 +1109,8 @@
<li class="md-nav__item">
<a href="../../chapter_tree/binary_tree/" class="md-nav__link">
8.1. &nbsp; 二叉树
<a href="../../chapter_heap/heap/" class="md-nav__link">
8.1. &nbsp;
</a>
</li>
@@ -1065,8 +1123,8 @@
<li class="md-nav__item">
<a href="../../chapter_tree/binary_tree_traversal/" class="md-nav__link">
8.2. &nbsp; 二叉树遍历
<a href="../../chapter_heap/build_heap/" class="md-nav__link">
8.2. &nbsp; 建堆操作 *
</a>
</li>
@@ -1079,50 +1137,8 @@
<li class="md-nav__item">
<a href="../../chapter_tree/array_representation_of_tree/" class="md-nav__link">
8.3. &nbsp; 二叉树数组表示
</a>
</li>
<li class="md-nav__item">
<a href="../../chapter_tree/binary_search_tree/" class="md-nav__link">
8.4. &nbsp; 二叉搜索树
</a>
</li>
<li class="md-nav__item">
<a href="../../chapter_tree/avl_tree/" class="md-nav__link">
8.5. &nbsp; AVL 树 *
</a>
</li>
<li class="md-nav__item">
<a href="../../chapter_tree/summary/" class="md-nav__link">
8.6. &nbsp; 小结
<a href="../../chapter_heap/summary/" class="md-nav__link">
8.3. &nbsp; 小结
</a>
</li>
@@ -1160,17 +1176,19 @@
<label class="md-nav__link" for="__nav_10" id="__nav_10_label" tabindex="0">
9. &nbsp; &nbsp;
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. &nbsp; &nbsp;
9. &nbsp; &nbsp;
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1180,8 +1198,8 @@
<li class="md-nav__item">
<a href="../../chapter_heap/heap/" class="md-nav__link">
9.1. &nbsp;
<a href="../../chapter_graph/graph/" class="md-nav__link">
9.1. &nbsp;
</a>
</li>
@@ -1194,8 +1212,8 @@
<li class="md-nav__item">
<a href="../../chapter_heap/build_heap/" class="md-nav__link">
9.2. &nbsp; 建堆操作 *
<a href="../../chapter_graph/graph_operations/" class="md-nav__link">
9.2. &nbsp; 图基础操作
</a>
</li>
@@ -1208,8 +1226,22 @@
<li class="md-nav__item">
<a href="../../chapter_heap/summary/" class="md-nav__link">
9.3. &nbsp; 小结
<a href="../../chapter_graph/graph_traversal/" class="md-nav__link">
9.3. &nbsp; 图的遍历
</a>
</li>
<li class="md-nav__item">
<a href="../../chapter_graph/summary/" class="md-nav__link">
9.4. &nbsp; 小结
</a>
</li>
@@ -1249,17 +1281,19 @@
<label class="md-nav__link" for="__nav_11" id="__nav_11_label" tabindex="0">
10. &nbsp; &nbsp;
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. &nbsp; &nbsp;
10. &nbsp; &nbsp; 搜索算法
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1269,8 +1303,8 @@
<li class="md-nav__item">
<a href="../../chapter_graph/graph/" class="md-nav__link">
10.1. &nbsp;
<a href="../../chapter_searching/binary_search/" class="md-nav__link">
10.1. &nbsp; 二分查找New
</a>
</li>
@@ -1283,8 +1317,8 @@
<li class="md-nav__item">
<a href="../../chapter_graph/graph_operations/" class="md-nav__link">
10.2. &nbsp; 图基础操作
<a href="../../chapter_searching/binary_search_edge/" class="md-nav__link">
10.2. &nbsp; 二分查找边界New
</a>
</li>
@@ -1297,8 +1331,8 @@
<li class="md-nav__item">
<a href="../../chapter_graph/graph_traversal/" class="md-nav__link">
10.3. &nbsp; 图的遍历
<a href="../../chapter_searching/replace_linear_by_hashing/" class="md-nav__link">
10.3. &nbsp; 哈希优化策略
</a>
</li>
@@ -1311,8 +1345,22 @@
<li class="md-nav__item">
<a href="../../chapter_graph/summary/" class="md-nav__link">
10.4. &nbsp; 小结
<a href="../../chapter_searching/searching_algorithm_revisited/" class="md-nav__link">
10.4. &nbsp; 重识搜索算法
</a>
</li>
<li class="md-nav__item">
<a href="../../chapter_searching/summary/" class="md-nav__link">
10.5. &nbsp; 小结
</a>
</li>
@@ -1536,101 +1584,14 @@
<label class="md-nav__link" for="__nav_13" id="__nav_13_label" tabindex="0">
12. &nbsp; &nbsp; 搜索算法
12. &nbsp; &nbsp; 回溯算法
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_13_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_13">
<span class="md-nav__icon md-icon"></span>
12. &nbsp; &nbsp; 搜索算法
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../chapter_searching/searching_algorithm_revisited/" class="md-nav__link">
12.1. &nbsp; 搜索算法New
</a>
</li>
<li class="md-nav__item">
<a href="../../chapter_searching/replace_linear_by_hashing/" class="md-nav__link">
12.2. &nbsp; 哈希优化策略
</a>
</li>
<li class="md-nav__item">
<a href="../../chapter_searching/summary/" class="md-nav__link">
12.3. &nbsp; 小结
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_14" >
<label class="md-nav__link" for="__nav_14" id="__nav_14_label" tabindex="0">
13. &nbsp; &nbsp; 回溯算法
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_14_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_14">
<span class="md-nav__icon md-icon"></span>
13. &nbsp; &nbsp; 回溯算法
12. &nbsp; &nbsp; 回溯算法
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1641,7 +1602,7 @@
<li class="md-nav__item">
<a href="../../chapter_backtracking/backtracking_algorithm/" class="md-nav__link">
13.1. &nbsp; 回溯算法New
12.1. &nbsp; 回溯算法New
</a>
</li>
@@ -1655,7 +1616,7 @@
<li class="md-nav__item">
<a href="../../chapter_backtracking/permutations_problem/" class="md-nav__link">
13.2. &nbsp; 全排列问题New
12.2. &nbsp; 全排列问题New
</a>
</li>
@@ -1669,7 +1630,7 @@
<li class="md-nav__item">
<a href="../../chapter_backtracking/n_queens_problem/" class="md-nav__link">
13.3. &nbsp; N 皇后问题New
12.3. &nbsp; N 皇后问题New
</a>
</li>
@@ -1699,7 +1660,7 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_15" checked>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_14" checked>
@@ -1709,15 +1670,15 @@
<label class="md-nav__link" for="__nav_15" id="__nav_15_label" tabindex="0">
14. &nbsp; &nbsp; 附录
<label class="md-nav__link" for="__nav_14" id="__nav_14_label" tabindex="0">
13. &nbsp; &nbsp; 附录
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_15_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_15">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_14_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_14">
<span class="md-nav__icon md-icon"></span>
14. &nbsp; &nbsp; 附录
13. &nbsp; &nbsp; 附录
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -1737,12 +1698,12 @@
<label class="md-nav__link md-nav__link--active" for="__toc">
14.1. &nbsp; 编程环境安装
13.1. &nbsp; 编程环境安装
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
14.1. &nbsp; 编程环境安装
13.1. &nbsp; 编程环境安装
</a>
@@ -1761,64 +1722,64 @@
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#1411-vscode" class="md-nav__link">
14.1.1. &nbsp; VSCode
<a href="#1311-vscode" class="md-nav__link">
13.1.1. &nbsp; VSCode
</a>
</li>
<li class="md-nav__item">
<a href="#1412-java" class="md-nav__link">
14.1.2. &nbsp; Java 环境
<a href="#1312-java" class="md-nav__link">
13.1.2. &nbsp; Java 环境
</a>
</li>
<li class="md-nav__item">
<a href="#1413-cc" class="md-nav__link">
14.1.3. &nbsp; C/C++ 环境
<a href="#1313-cc" class="md-nav__link">
13.1.3. &nbsp; C/C++ 环境
</a>
</li>
<li class="md-nav__item">
<a href="#1414-python" class="md-nav__link">
14.1.4. &nbsp; Python 环境
<a href="#1314-python" class="md-nav__link">
13.1.4. &nbsp; Python 环境
</a>
</li>
<li class="md-nav__item">
<a href="#1415-go" class="md-nav__link">
14.1.5. &nbsp; Go 环境
<a href="#1315-go" class="md-nav__link">
13.1.5. &nbsp; Go 环境
</a>
</li>
<li class="md-nav__item">
<a href="#1416-javascript" class="md-nav__link">
14.1.6. &nbsp; JavaScript 环境
<a href="#1316-javascript" class="md-nav__link">
13.1.6. &nbsp; JavaScript 环境
</a>
</li>
<li class="md-nav__item">
<a href="#1417-c" class="md-nav__link">
14.1.7. &nbsp; C# 环境
<a href="#1317-c" class="md-nav__link">
13.1.7. &nbsp; C# 环境
</a>
</li>
<li class="md-nav__item">
<a href="#1418-swift" class="md-nav__link">
14.1.8. &nbsp; Swift 环境
<a href="#1318-swift" class="md-nav__link">
13.1.8. &nbsp; Swift 环境
</a>
</li>
<li class="md-nav__item">
<a href="#1419-rust" class="md-nav__link">
14.1.9. &nbsp; Rust 环境
<a href="#1319-rust" class="md-nav__link">
13.1.9. &nbsp; Rust 环境
</a>
</li>
@@ -1839,7 +1800,7 @@
<li class="md-nav__item">
<a href="../contribution/" class="md-nav__link">
14.2. &nbsp; 一起参与创作
13.2. &nbsp; 一起参与创作
</a>
</li>
@@ -1867,7 +1828,7 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_16" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_15" >
@@ -1884,8 +1845,8 @@
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_16_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_16">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_15_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_15">
<span class="md-nav__icon md-icon"></span>
参考文献
</label>
@@ -1926,64 +1887,64 @@
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#1411-vscode" class="md-nav__link">
14.1.1. &nbsp; VSCode
<a href="#1311-vscode" class="md-nav__link">
13.1.1. &nbsp; VSCode
</a>
</li>
<li class="md-nav__item">
<a href="#1412-java" class="md-nav__link">
14.1.2. &nbsp; Java 环境
<a href="#1312-java" class="md-nav__link">
13.1.2. &nbsp; Java 环境
</a>
</li>
<li class="md-nav__item">
<a href="#1413-cc" class="md-nav__link">
14.1.3. &nbsp; C/C++ 环境
<a href="#1313-cc" class="md-nav__link">
13.1.3. &nbsp; C/C++ 环境
</a>
</li>
<li class="md-nav__item">
<a href="#1414-python" class="md-nav__link">
14.1.4. &nbsp; Python 环境
<a href="#1314-python" class="md-nav__link">
13.1.4. &nbsp; Python 环境
</a>
</li>
<li class="md-nav__item">
<a href="#1415-go" class="md-nav__link">
14.1.5. &nbsp; Go 环境
<a href="#1315-go" class="md-nav__link">
13.1.5. &nbsp; Go 环境
</a>
</li>
<li class="md-nav__item">
<a href="#1416-javascript" class="md-nav__link">
14.1.6. &nbsp; JavaScript 环境
<a href="#1316-javascript" class="md-nav__link">
13.1.6. &nbsp; JavaScript 环境
</a>
</li>
<li class="md-nav__item">
<a href="#1417-c" class="md-nav__link">
14.1.7. &nbsp; C# 环境
<a href="#1317-c" class="md-nav__link">
13.1.7. &nbsp; C# 环境
</a>
</li>
<li class="md-nav__item">
<a href="#1418-swift" class="md-nav__link">
14.1.8. &nbsp; Swift 环境
<a href="#1318-swift" class="md-nav__link">
13.1.8. &nbsp; Swift 环境
</a>
</li>
<li class="md-nav__item">
<a href="#1419-rust" class="md-nav__link">
14.1.9. &nbsp; Rust 环境
<a href="#1319-rust" class="md-nav__link">
13.1.9. &nbsp; Rust 环境
</a>
</li>
@@ -2011,49 +1972,49 @@
<h1 id="141">14.1. &nbsp; 编程环境安装<a class="headerlink" href="#141" title="Permanent link">&para;</a></h1>
<h2 id="1411-vscode">14.1.1. &nbsp; VSCode<a class="headerlink" href="#1411-vscode" title="Permanent link">&para;</a></h2>
<h1 id="131">13.1. &nbsp; 编程环境安装<a class="headerlink" href="#131" title="Permanent link">&para;</a></h1>
<h2 id="1311-vscode">13.1.1. &nbsp; VSCode<a class="headerlink" href="#1311-vscode" title="Permanent link">&para;</a></h2>
<p>本书推荐使用开源轻量的 VSCode 作为本地 IDE ,下载并安装 <a href="https://code.visualstudio.com/">VSCode</a></p>
<h2 id="1412-java">14.1.2. &nbsp; Java 环境<a class="headerlink" href="#1412-java" title="Permanent link">&para;</a></h2>
<h2 id="1312-java">13.1.2. &nbsp; Java 环境<a class="headerlink" href="#1312-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> ,安装 Extension Pack for Java 。</li>
</ol>
<h2 id="1413-cc">14.1.3. &nbsp; C/C++ 环境<a class="headerlink" href="#1413-cc" title="Permanent link">&para;</a></h2>
<h2 id="1313-cc">13.1.3. &nbsp; C/C++ 环境<a class="headerlink" href="#1313-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>
<li>(可选)打开 Settings 页面,搜索 <code>Clang_format_fallback Style</code> 代码格式化选项,设置为 <code>{ BasedOnStyle: Microsoft, BreakBeforeBraces: Attach }</code></li>
</ol>
<h2 id="1414-python">14.1.4. &nbsp; Python 环境<a class="headerlink" href="#1414-python" title="Permanent link">&para;</a></h2>
<h2 id="1314-python">13.1.4. &nbsp; Python 环境<a class="headerlink" href="#1314-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>
<li>(可选)在命令行输入 <code>pip install black</code> ,安装代码格式化工具。</li>
</ol>
<h2 id="1415-go">14.1.5. &nbsp; Go 环境<a class="headerlink" href="#1415-go" title="Permanent link">&para;</a></h2>
<h2 id="1315-go">13.1.5. &nbsp; Go 环境<a class="headerlink" href="#1315-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="1416-javascript">14.1.6. &nbsp; JavaScript 环境<a class="headerlink" href="#1416-javascript" title="Permanent link">&para;</a></h2>
<h2 id="1316-javascript">13.1.6. &nbsp; JavaScript 环境<a class="headerlink" href="#1316-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>
<li>(可选)在 VSCode 的插件市场中搜索 <code>Prettier</code> ,安装代码格式化工具。</li>
</ol>
<h2 id="1417-c">14.1.7. &nbsp; C# 环境<a class="headerlink" href="#1417-c" title="Permanent link">&para;</a></h2>
<h2 id="1317-c">13.1.7. &nbsp; C# 环境<a class="headerlink" href="#1317-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="1418-swift">14.1.8. &nbsp; Swift 环境<a class="headerlink" href="#1418-swift" title="Permanent link">&para;</a></h2>
<h2 id="1318-swift">13.1.8. &nbsp; Swift 环境<a class="headerlink" href="#1318-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="1419-rust">14.1.9. &nbsp; Rust 环境<a class="headerlink" href="#1419-rust" title="Permanent link">&para;</a></h2>
<h2 id="1319-rust">13.1.9. &nbsp; Rust 环境<a class="headerlink" href="#1319-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>
@@ -2135,7 +2096,7 @@
<nav class="md-footer__inner md-grid" aria-label="页脚" >
<a href="../../chapter_backtracking/n_queens_problem/" class="md-footer__link md-footer__link--prev" aria-label="上一页: 13.3. &amp;nbsp; N 皇后问题New" rel="prev">
<a href="../../chapter_backtracking/n_queens_problem/" class="md-footer__link md-footer__link--prev" aria-label="上一页: 12.3. &amp;nbsp; N 皇后问题New" 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>
@@ -2144,20 +2105,20 @@
上一页
</span>
<div class="md-ellipsis">
13.3. &nbsp; N 皇后问题New
12.3. &nbsp; N 皇后问题New
</div>
</div>
</a>
<a href="../contribution/" class="md-footer__link md-footer__link--next" aria-label="下一页: 14.2. &amp;nbsp; 一起参与创作" rel="next">
<a href="../contribution/" class="md-footer__link md-footer__link--next" aria-label="下一页: 13.2. &amp;nbsp; 一起参与创作" rel="next">
<div class="md-footer__title">
<span class="md-footer__direction">
下一页
</span>
<div class="md-ellipsis">
14.2. &nbsp; 一起参与创作
13.2. &nbsp; 一起参与创作
</div>
</div>
<div class="md-footer__button md-icon">