mirror of
https://github.com/krahets/hello-algo.git
synced 2026-04-25 19:13:18 +08:00
deploy
This commit is contained in:
@@ -334,6 +334,63 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item md-nav__item--nested">
|
||||
|
||||
|
||||
|
||||
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_1" >
|
||||
|
||||
|
||||
|
||||
<div class="md-nav__link md-nav__container">
|
||||
<a href="../../chapter_hello_algo/" class="md-nav__link ">
|
||||
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m13.13 22.19-1.63-3.83c1.57-.58 3.04-1.36 4.4-2.27l-2.77 6.1M5.64 12.5l-3.83-1.63 6.1-2.77C7 9.46 6.22 10.93 5.64 12.5M19.22 4c.28 0 .53 0 .74.05.17 1.39-.02 4.25-3.3 7.53-1.7 1.71-3.73 3.02-6.01 3.89l-2.15-2.1c.92-2.31 2.23-4.34 3.92-6.03C15.18 4.58 17.64 4 19.22 4m0-2c-1.98 0-4.98.69-8.22 3.93-2.19 2.19-3.5 4.6-4.35 6.71-.28.75-.09 1.57.46 2.13l2.13 2.12c.38.38.89.61 1.42.61.23 0 .47-.06.7-.15A19.1 19.1 0 0 0 18.07 13c5.66-5.66 3.54-10.61 3.54-10.61S20.7 2 19.22 2m-4.68 7.46c-.78-.78-.78-2.05 0-2.83s2.05-.78 2.83 0c.77.78.78 2.05 0 2.83-.78.78-2.05.78-2.83 0m-5.66 7.07-1.41-1.41 1.41 1.41M6.24 22l3.64-3.64c-.34-.09-.67-.24-.97-.45L4.83 22h1.41M2 22h1.41l4.77-4.76-1.42-1.41L2 20.59V22m0-2.83 4.09-4.08c-.21-.3-.36-.62-.45-.97L2 17.76v1.41Z"/></svg>
|
||||
|
||||
<span class="md-ellipsis">
|
||||
序
|
||||
</span>
|
||||
|
||||
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_1_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_1">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
序
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -349,7 +406,7 @@
|
||||
|
||||
|
||||
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_1" >
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
|
||||
|
||||
|
||||
|
||||
@@ -367,14 +424,14 @@
|
||||
</a>
|
||||
|
||||
|
||||
<label class="md-nav__link " for="__nav_1" id="__nav_1_label" tabindex="0">
|
||||
<label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="0">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
</div>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_1_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_1">
|
||||
<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>
|
||||
第 0 章 前言
|
||||
</label>
|
||||
@@ -480,7 +537,7 @@
|
||||
|
||||
|
||||
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
|
||||
|
||||
|
||||
|
||||
@@ -498,14 +555,14 @@
|
||||
</a>
|
||||
|
||||
|
||||
<label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="0">
|
||||
<label class="md-nav__link " for="__nav_3" id="__nav_3_label" tabindex="0">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
</div>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_2">
|
||||
<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>
|
||||
第 1 章 初识算法
|
||||
</label>
|
||||
@@ -617,7 +674,7 @@
|
||||
|
||||
|
||||
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" checked>
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" checked>
|
||||
|
||||
|
||||
|
||||
@@ -635,14 +692,14 @@
|
||||
</a>
|
||||
|
||||
|
||||
<label class="md-nav__link " for="__nav_3" id="__nav_3_label" tabindex="0">
|
||||
<label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="0">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
</div>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="true">
|
||||
<label class="md-nav__title" for="__nav_3">
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="true">
|
||||
<label class="md-nav__title" for="__nav_4">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
第 2 章 复杂度分析
|
||||
</label>
|
||||
@@ -927,7 +984,7 @@
|
||||
|
||||
|
||||
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
|
||||
|
||||
|
||||
|
||||
@@ -945,14 +1002,14 @@
|
||||
</a>
|
||||
|
||||
|
||||
<label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="0">
|
||||
<label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="0">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
</div>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_4">
|
||||
<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>
|
||||
第 3 章 数据结构
|
||||
</label>
|
||||
@@ -1104,7 +1161,7 @@
|
||||
|
||||
|
||||
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" >
|
||||
|
||||
|
||||
|
||||
@@ -1122,14 +1179,14 @@
|
||||
</a>
|
||||
|
||||
|
||||
<label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="0">
|
||||
<label class="md-nav__link " for="__nav_6" id="__nav_6_label" tabindex="0">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
</div>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_5">
|
||||
<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>
|
||||
第 4 章 数组与链表
|
||||
</label>
|
||||
@@ -1287,7 +1344,7 @@
|
||||
|
||||
|
||||
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" >
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7" >
|
||||
|
||||
|
||||
|
||||
@@ -1305,14 +1362,14 @@
|
||||
</a>
|
||||
|
||||
|
||||
<label class="md-nav__link " for="__nav_6" id="__nav_6_label" tabindex="0">
|
||||
<label class="md-nav__link " for="__nav_7" id="__nav_7_label" tabindex="0">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
</div>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_6">
|
||||
<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>
|
||||
第 5 章 栈与队列
|
||||
</label>
|
||||
@@ -1441,7 +1498,7 @@
|
||||
|
||||
|
||||
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7" >
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" >
|
||||
|
||||
|
||||
|
||||
@@ -1459,14 +1516,14 @@
|
||||
</a>
|
||||
|
||||
|
||||
<label class="md-nav__link " for="__nav_7" id="__nav_7_label" tabindex="0">
|
||||
<label class="md-nav__link " for="__nav_8" id="__nav_8_label" tabindex="0">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
</div>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_7">
|
||||
<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>
|
||||
第 6 章 哈希表
|
||||
</label>
|
||||
@@ -1599,7 +1656,7 @@
|
||||
|
||||
|
||||
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" >
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_9" >
|
||||
|
||||
|
||||
|
||||
@@ -1617,14 +1674,14 @@
|
||||
</a>
|
||||
|
||||
|
||||
<label class="md-nav__link " for="__nav_8" id="__nav_8_label" tabindex="0">
|
||||
<label class="md-nav__link " for="__nav_9" id="__nav_9_label" tabindex="0">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
</div>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_8">
|
||||
<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>
|
||||
第 7 章 树
|
||||
</label>
|
||||
@@ -1795,7 +1852,7 @@
|
||||
|
||||
|
||||
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_9" >
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10" >
|
||||
|
||||
|
||||
|
||||
@@ -1813,14 +1870,14 @@
|
||||
</a>
|
||||
|
||||
|
||||
<label class="md-nav__link " for="__nav_9" id="__nav_9_label" tabindex="0">
|
||||
<label class="md-nav__link " for="__nav_10" id="__nav_10_label" tabindex="0">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
</div>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_9_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_9">
|
||||
<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>
|
||||
第 8 章 堆
|
||||
</label>
|
||||
@@ -1949,7 +2006,7 @@
|
||||
|
||||
|
||||
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10" >
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_11" >
|
||||
|
||||
|
||||
|
||||
@@ -1967,14 +2024,14 @@
|
||||
</a>
|
||||
|
||||
|
||||
<label class="md-nav__link " for="__nav_10" id="__nav_10_label" tabindex="0">
|
||||
<label class="md-nav__link " for="__nav_11" id="__nav_11_label" tabindex="0">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
</div>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_10_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_10">
|
||||
<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>
|
||||
第 9 章 图
|
||||
</label>
|
||||
@@ -2107,7 +2164,7 @@
|
||||
|
||||
|
||||
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_11" >
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_12" >
|
||||
|
||||
|
||||
|
||||
@@ -2125,14 +2182,14 @@
|
||||
</a>
|
||||
|
||||
|
||||
<label class="md-nav__link " for="__nav_11" id="__nav_11_label" tabindex="0">
|
||||
<label class="md-nav__link " for="__nav_12" id="__nav_12_label" tabindex="0">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
</div>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_11_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_11">
|
||||
<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>
|
||||
第 10 章 搜索
|
||||
</label>
|
||||
@@ -2317,7 +2374,7 @@
|
||||
|
||||
|
||||
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_12" >
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_13" >
|
||||
|
||||
|
||||
|
||||
@@ -2335,14 +2392,14 @@
|
||||
</a>
|
||||
|
||||
|
||||
<label class="md-nav__link " for="__nav_12" id="__nav_12_label" tabindex="0">
|
||||
<label class="md-nav__link " for="__nav_13" id="__nav_13_label" tabindex="0">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
</div>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_12_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_12">
|
||||
<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>
|
||||
第 11 章 排序
|
||||
</label>
|
||||
@@ -2620,7 +2677,7 @@
|
||||
|
||||
|
||||
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_13" >
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_14" >
|
||||
|
||||
|
||||
|
||||
@@ -2638,14 +2695,14 @@
|
||||
</a>
|
||||
|
||||
|
||||
<label class="md-nav__link " for="__nav_13" id="__nav_13_label" tabindex="0">
|
||||
<label class="md-nav__link " for="__nav_14" id="__nav_14_label" tabindex="0">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
</div>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_13_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_13">
|
||||
<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>
|
||||
第 12 章 分治
|
||||
</label>
|
||||
@@ -2797,7 +2854,7 @@
|
||||
|
||||
|
||||
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_14" >
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_15" >
|
||||
|
||||
|
||||
|
||||
@@ -2815,14 +2872,14 @@
|
||||
</a>
|
||||
|
||||
|
||||
<label class="md-nav__link " for="__nav_14" id="__nav_14_label" tabindex="0">
|
||||
<label class="md-nav__link " for="__nav_15" id="__nav_15_label" tabindex="0">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
</div>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_14_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_14">
|
||||
<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>
|
||||
第 13 章 回溯
|
||||
</label>
|
||||
@@ -2978,7 +3035,7 @@
|
||||
|
||||
|
||||
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_15" >
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_16" >
|
||||
|
||||
|
||||
|
||||
@@ -2996,14 +3053,14 @@
|
||||
</a>
|
||||
|
||||
|
||||
<label class="md-nav__link " for="__nav_15" id="__nav_15_label" tabindex="0">
|
||||
<label class="md-nav__link " for="__nav_16" id="__nav_16_label" tabindex="0">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
</div>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_15_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_15">
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_16_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_16">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
第 14 章 动态规划
|
||||
</label>
|
||||
@@ -3197,7 +3254,7 @@
|
||||
|
||||
|
||||
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_16" >
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_17" >
|
||||
|
||||
|
||||
|
||||
@@ -3215,14 +3272,14 @@
|
||||
</a>
|
||||
|
||||
|
||||
<label class="md-nav__link " for="__nav_16" id="__nav_16_label" tabindex="0">
|
||||
<label class="md-nav__link " for="__nav_17" id="__nav_17_label" tabindex="0">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
</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_17_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_17">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
第 15 章 贪心
|
||||
</label>
|
||||
@@ -3370,7 +3427,7 @@
|
||||
|
||||
|
||||
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_17" >
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_18" >
|
||||
|
||||
|
||||
|
||||
@@ -3388,14 +3445,14 @@
|
||||
</a>
|
||||
|
||||
|
||||
<label class="md-nav__link " for="__nav_17" id="__nav_17_label" tabindex="0">
|
||||
<label class="md-nav__link " for="__nav_18" id="__nav_18_label" tabindex="0">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
</div>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_17_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_17">
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_18_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_18">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
第 16 章 附录
|
||||
</label>
|
||||
@@ -3495,7 +3552,7 @@
|
||||
|
||||
|
||||
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_18" >
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_19" >
|
||||
|
||||
|
||||
|
||||
@@ -3514,8 +3571,8 @@
|
||||
|
||||
</div>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_18_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_18">
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_19_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_19">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
参考文献
|
||||
</label>
|
||||
@@ -3552,7 +3609,7 @@
|
||||
|
||||
|
||||
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_19" >
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_20" >
|
||||
|
||||
|
||||
|
||||
@@ -3560,7 +3617,7 @@
|
||||
<a href="../../chapter_paperbook/" class="md-nav__link ">
|
||||
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M96 0C43 0 0 43 0 96v320c0 53 43 96 96 96h320c17.7 0 32-14.3 32-32s-14.3-32-32-32v-64c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H96zm0 384h256v64H96c-17.7 0-32-14.3-32-32s14.3-32 32-32zm32-240c0-8.8 7.2-16 16-16h192c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16zm16 48h192c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16s7.2-16 16-16z"/></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m19 2-5 4.5v11l5-4.5V2M6.5 5C4.55 5 2.45 5.4 1 6.5v14.66c0 .25.25.5.5.5.1 0 .15-.07.25-.07 1.35-.65 3.3-1.09 4.75-1.09 1.95 0 4.05.4 5.5 1.5 1.35-.85 3.8-1.5 5.5-1.5 1.65 0 3.35.31 4.75 1.06.1.05.15.03.25.03.25 0 .5-.25.5-.5V6.5c-.6-.45-1.25-.75-2-1V19c-1.1-.35-2.3-.5-3.5-.5-1.7 0-4.15.65-5.5 1.5V6.5C10.55 5.4 8.45 5 6.5 5Z"/></svg>
|
||||
|
||||
<span class="md-ellipsis">
|
||||
纸质书
|
||||
@@ -3579,8 +3636,8 @@
|
||||
|
||||
</div>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_19_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_19">
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_20_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_20">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
纸质书
|
||||
</label>
|
||||
@@ -3753,7 +3810,7 @@
|
||||
<h1 id="22">2.2 迭代与递归<a class="headerlink" href="#22" title="Permanent link">¶</a></h1>
|
||||
<p>在算法中,重复执行某个任务是很常见的,它与复杂度分析息息相关。因此,在介绍时间复杂度和空间复杂度之前,我们先来了解如何在程序中实现重复执行任务,即两种基本的程序控制结构:迭代、递归。</p>
|
||||
<h2 id="221">2.2.1 迭代<a class="headerlink" href="#221" title="Permanent link">¶</a></h2>
|
||||
<p>「迭代 iteration」是一种重复执行某个任务的控制结构。在迭代中,程序会在满足一定的条件下重复执行某段代码,直到这个条件不再满足。</p>
|
||||
<p><u>迭代(iteration)</u>是一种重复执行某个任务的控制结构。在迭代中,程序会在满足一定的条件下重复执行某段代码,直到这个条件不再满足。</p>
|
||||
<h3 id="1-for">1. for 循环<a class="headerlink" href="#1-for" title="Permanent link">¶</a></h3>
|
||||
<p><code>for</code> 循环是最常见的迭代形式之一,<strong>适合在预先知道迭代次数时使用</strong>。</p>
|
||||
<p>以下函数基于 <code>for</code> 循环实现了求和 <span class="arithmatex">\(1 + 2 + \dots + n\)</span> ,求和结果使用变量 <code>res</code> 记录。需要注意的是,Python 中 <code>range(a, b)</code> 对应的区间是“左闭右开”的,对应的遍历范围为 <span class="arithmatex">\(a, a + 1, \dots, b-1\)</span> :</p>
|
||||
@@ -4573,7 +4630,7 @@
|
||||
<p>在这种情况下,函数的操作数量与 <span class="arithmatex">\(n^2\)</span> 成正比,或者说算法运行时间和输入数据大小 <span class="arithmatex">\(n\)</span> 成“平方关系”。</p>
|
||||
<p>我们可以继续添加嵌套循环,每一次嵌套都是一次“升维”,将会使时间复杂度提高至“立方关系”“四次方关系”,以此类推。</p>
|
||||
<h2 id="222">2.2.2 递归<a class="headerlink" href="#222" title="Permanent link">¶</a></h2>
|
||||
<p>「递归 recursion」是一种算法策略,通过函数调用自身来解决问题。它主要包含两个阶段。</p>
|
||||
<p><u>递归(recursion)</u>是一种算法策略,通过函数调用自身来解决问题。它主要包含两个阶段。</p>
|
||||
<ol>
|
||||
<li><strong>递</strong>:程序不断深入地调用自身,通常传入更小或更简化的参数,直到达到“终止条件”。</li>
|
||||
<li><strong>归</strong>:触发“终止条件”后,程序从最深层的递归函数开始逐层返回,汇聚每一层的结果。</li>
|
||||
@@ -4793,7 +4850,7 @@
|
||||
|
||||
<p>在实际中,编程语言允许的递归深度通常是有限的,过深的递归可能导致栈溢出错误。</p>
|
||||
<h3 id="2">2. 尾递归<a class="headerlink" href="#2" title="Permanent link">¶</a></h3>
|
||||
<p>有趣的是,<strong>如果函数在返回前的最后一步才进行递归调用</strong>,则该函数可以被编译器或解释器优化,使其在空间效率上与迭代相当。这种情况被称为「尾递归 tail recursion」。</p>
|
||||
<p>有趣的是,<strong>如果函数在返回前的最后一步才进行递归调用</strong>,则该函数可以被编译器或解释器优化,使其在空间效率上与迭代相当。这种情况被称为<u>尾递归(tail recursion)</u>。</p>
|
||||
<ul>
|
||||
<li><strong>普通递归</strong>:当函数返回到上一层级的函数后,需要继续执行代码,因此系统需要保存上一层调用的上下文。</li>
|
||||
<li><strong>尾递归</strong>:递归调用是函数返回前的最后一个操作,这意味着函数返回到上一层级后,无须继续执行其他操作,因此系统无须保存上一层函数的上下文。</li>
|
||||
@@ -5162,7 +5219,7 @@
|
||||
<p><div style="height: 459px; width: 100%;"><iframe class="pythontutor-iframe" src="https://pythontutor.com/iframe-embed.html#code=def%20fib%28n%3A%20int%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%E6%96%90%E6%B3%A2%E9%82%A3%E5%A5%91%E6%95%B0%E5%88%97%EF%BC%9A%E9%80%92%E5%BD%92%22%22%22%0A%20%20%20%20%23%20%E7%BB%88%E6%AD%A2%E6%9D%A1%E4%BB%B6%20f%281%29%20%3D%200,%20f%282%29%20%3D%201%0A%20%20%20%20if%20n%20%3D%3D%201%20or%20n%20%3D%3D%202%3A%0A%20%20%20%20%20%20%20%20return%20n%20-%201%0A%20%20%20%20%23%20%E9%80%92%E5%BD%92%E8%B0%83%E7%94%A8%20f%28n%29%20%3D%20f%28n-1%29%20%2B%20f%28n-2%29%0A%20%20%20%20res%20%3D%20fib%28n%20-%201%29%20%2B%20fib%28n%20-%202%29%0A%20%20%20%20%23%20%E8%BF%94%E5%9B%9E%E7%BB%93%E6%9E%9C%20f%28n%29%0A%20%20%20%20return%20res%0A%0A%22%22%22Driver%20Code%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20n%20%3D%205%0A%20%20%20%20res%20%3D%20fib%28n%29%0A%20%20%20%20print%28f%22%5Cn%E6%96%90%E6%B3%A2%E9%82%A3%E5%A5%91%E6%95%B0%E5%88%97%E7%9A%84%E7%AC%AC%20%7Bn%7D%20%E9%A1%B9%E4%B8%BA%20%7Bres%7D%22%29&codeDivHeight=472&codeDivWidth=350&cumulative=false&curInstr=3&heapPrimitives=nevernest&origin=opt-frontend.js&py=311&rawInputLstJSON=%5B%5D&textReferences=false"> </iframe></div>
|
||||
<div style="margin-top: 5px;"><a href="https://pythontutor.com/iframe-embed.html#code=def%20fib%28n%3A%20int%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%E6%96%90%E6%B3%A2%E9%82%A3%E5%A5%91%E6%95%B0%E5%88%97%EF%BC%9A%E9%80%92%E5%BD%92%22%22%22%0A%20%20%20%20%23%20%E7%BB%88%E6%AD%A2%E6%9D%A1%E4%BB%B6%20f%281%29%20%3D%200,%20f%282%29%20%3D%201%0A%20%20%20%20if%20n%20%3D%3D%201%20or%20n%20%3D%3D%202%3A%0A%20%20%20%20%20%20%20%20return%20n%20-%201%0A%20%20%20%20%23%20%E9%80%92%E5%BD%92%E8%B0%83%E7%94%A8%20f%28n%29%20%3D%20f%28n-1%29%20%2B%20f%28n-2%29%0A%20%20%20%20res%20%3D%20fib%28n%20-%201%29%20%2B%20fib%28n%20-%202%29%0A%20%20%20%20%23%20%E8%BF%94%E5%9B%9E%E7%BB%93%E6%9E%9C%20f%28n%29%0A%20%20%20%20return%20res%0A%0A%22%22%22Driver%20Code%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20n%20%3D%205%0A%20%20%20%20res%20%3D%20fib%28n%29%0A%20%20%20%20print%28f%22%5Cn%E6%96%90%E6%B3%A2%E9%82%A3%E5%A5%91%E6%95%B0%E5%88%97%E7%9A%84%E7%AC%AC%20%7Bn%7D%20%E9%A1%B9%E4%B8%BA%20%7Bres%7D%22%29&codeDivHeight=800&codeDivWidth=600&cumulative=false&curInstr=3&heapPrimitives=nevernest&origin=opt-frontend.js&py=311&rawInputLstJSON=%5B%5D&textReferences=false" target="_blank" rel="noopener noreferrer">全屏观看 ></a></div></p>
|
||||
</details>
|
||||
<p>观察以上代码,我们在函数内递归调用了两个函数,<strong>这意味着从一个调用产生了两个调用分支</strong>。如图 2-6 所示,这样不断递归调用下去,最终将产生一棵层数为 <span class="arithmatex">\(n\)</span> 的「递归树 recursion tree」。</p>
|
||||
<p>观察以上代码,我们在函数内递归调用了两个函数,<strong>这意味着从一个调用产生了两个调用分支</strong>。如图 2-6 所示,这样不断递归调用下去,最终将产生一棵层数为 <span class="arithmatex">\(n\)</span> 的<u>递归树(recursion tree)</u>。</p>
|
||||
<p><a class="glightbox" href="../iteration_and_recursion.assets/recursion_tree.png" data-type="image" data-width="100%" data-height="auto" data-desc-position="bottom"><img alt="斐波那契数列的递归树" class="animation-figure" src="../iteration_and_recursion.assets/recursion_tree.png" /></a></p>
|
||||
<p align="center"> 图 2-6 斐波那契数列的递归树 </p>
|
||||
|
||||
@@ -5698,7 +5755,7 @@ aria-label="页脚"
|
||||
<div class="md-copyright">
|
||||
|
||||
<div class="md-copyright__highlight">
|
||||
Copyright © 2022-2024 krahets</br>The website content is licensed under <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/">CC BY-NC-SA 4.0</a>
|
||||
Copyright © 2022-2024 krahets<br>The website content is licensed under <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/">CC BY-NC-SA 4.0</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user