Skip to content

Commit 8d7c417

Browse files
committed
Deployed 22d0fe6 with MkDocs version: 1.0.4
1 parent 288b907 commit 8d7c417

File tree

13 files changed

+60
-53
lines changed

13 files changed

+60
-53
lines changed
-5.81 KB
Binary file not shown.
-14.6 KB
Binary file not shown.
-11.4 KB
Binary file not shown.
-2.94 KB
Binary file not shown.
Binary file not shown.
-5.67 KB
Binary file not shown.
-8.88 KB
Binary file not shown.
Binary file not shown.

17_二叉查找树/binary_search_tree/index.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,8 @@ <h4 id="_6">删除有两个孩子的内部节点</h4>
436436
return self._bst_remove(self.root, key)
437437
</code></pre>
438438

439-
<p>完整代码你可以在本章的 bst.py 找到。</p>
439+
<p>完整代码你可以在本章的 bst.py 找到。
440+
另外推荐一个可以在线演示过程的网址大家可以手动执行下看看效果: https://www.cs.usfca.edu/~galles/visualization/BST.html</p>
440441
<h1 id="_7">时间复杂度分析</h1>
441442
<p>上边介绍的操作时间复杂度和二叉树的形状有关。平均来说时间复杂度是和树的高度成正比的,树的高度 h 是 log(n),
442443
但是最坏情况下以上操作的时间复杂度都是 O(n)。为了改善 BST 有很多变种,感兴趣请参考延伸阅读中的内容。</p>

index.html

Lines changed: 33 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -80,31 +80,33 @@
8080

8181
<ul>
8282

83-
<li><a class="toctree-l3" href="#_10">教材</a></li>
83+
<li><a class="toctree-l3" href="#_10">参考教材和链接</a></li>
8484

85-
<li><a class="toctree-l3" href="#_11">讲课形式</a></li>
85+
<li><a class="toctree-l3" href="#_11">算法可视化</a></li>
8686

87-
<li><a class="toctree-l3" href="#_12">课程特点</a></li>
87+
<li><a class="toctree-l3" href="#_12">讲课形式</a></li>
8888

89-
<li><a class="toctree-l3" href="#_13">资料</a></li>
89+
<li><a class="toctree-l3" href="#_13">课程特点</a></li>
9090

91-
<li><a class="toctree-l3" href="#_14">如何获取每章代码</a></li>
91+
<li><a class="toctree-l3" href="#_14">资料</a></li>
9292

93-
<li><a class="toctree-l3" href="#_15">如何学习</a></li>
93+
<li><a class="toctree-l3" href="#_15">如何获取每章代码</a></li>
9494

95-
<li><a class="toctree-l3" href="#_16">课程目标</a></li>
95+
<li><a class="toctree-l3" href="#_16">如何学习</a></li>
9696

97-
<li><a class="toctree-l3" href="#_17">开发和测试工具</a></li>
97+
<li><a class="toctree-l3" href="#_17">课程目标</a></li>
9898

99-
<li><a class="toctree-l3" href="#_18">测试用例设计</a></li>
99+
<li><a class="toctree-l3" href="#_18">开发和测试工具</a></li>
100100

101-
<li><a class="toctree-l3" href="#_19">勘误</a></li>
101+
<li><a class="toctree-l3" href="#_19">测试用例设计</a></li>
102+
103+
<li><a class="toctree-l3" href="#_20">勘误</a></li>
102104

103105
<li><a class="toctree-l3" href="#git">如何更新代码(写给不熟悉 git 的同学)</a></li>
104106

105-
<li><a class="toctree-l3" href="#_20">如何提问?</a></li>
107+
<li><a class="toctree-l3" href="#_21">如何提问?</a></li>
106108

107-
<li><a class="toctree-l3" href="#_21">本电子书制作和写作方式</a></li>
109+
<li><a class="toctree-l3" href="#_22">本电子书制作和写作方式</a></li>
108110

109111
</ul>
110112

@@ -272,7 +274,7 @@ <h2 id="_2">链接</h2>
272274
<p>视频教程已经发布在网易云课堂和 csdn 学院,内容一致,推荐使用网易云课堂。</p>
273275
<p><a href="http://study.163.com/course/introduction.htm?courseId=1005526003">网易云课堂: Python数据结构与算法教程</a> 视频教程</p>
274276
<p><a href="https://edu.csdn.net/course/detail/8332">csdn 学院:Python数据结构与算法教程</a></p>
275-
<p><a href="http://ningning.today/python_data_structures_and_algorithms/">网上阅读《Python 算法与数据结构教程 》</a></p>
277+
<p><a href="http://pegasuswang.github.io/python_data_structures_and_algorithms/">网上阅读《Python 算法与数据结构教程 》</a></p>
276278
<p><a href="https://github.com/PegasusWang/python_data_structures_and_algorithms">github 链接</a></p>
277279
<p><a href="http://python-data-structures-and-algorithms.readthedocs.io/zh/latest/">readthedoc 电子书下载</a></p>
278280
<p><a href="https://zhuanlan.zhihu.com/p/36038003">《开源一个 Python 算法和数据结构中文教程[视频]》</a> 视频讲解示例</p>
@@ -284,7 +286,7 @@ <h2 id="_3">痛点</h2>
284286
<li>网上很多视频教程不够循序渐进,不成系统</li>
285287
</ul>
286288
<h2 id="_4">作者简介</h2>
287-
<p>目前就职于<a href="https://www.zhihu.com/people/pegasus-wang/activities">知乎</a>,任后端工程师,多年 Python 开发经验。</p>
289+
<p>曾就职于<a href="https://www.zhihu.com/people/pegasus-wang/activities">知乎</a>,任后端工程师,多年 Python 开发经验。</p>
288290
<p>知乎专栏:</p>
289291
<ul>
290292
<li><a href="https://zhuanlan.zhihu.com/c_85234576">《Python 学习之路》</a></li>
@@ -349,21 +351,25 @@ <h1 id="_9">预备知识</h1>
349351
<li>了解基本的数据结构和算法的概念,不适合<strong>完全</strong>没有了解过算法的新手,更不适合 Python 基础都没掌握的同学。购买之前请慎重考虑</li>
350352
<li>无需太多数学基础,仅在算法时间复杂度分析的时候会用到一些简单数学知识。对于学习基础算法,逻辑思维可能更重要一些</li>
351353
</ul>
352-
<h2 id="_10">教材</h2>
354+
<h2 id="_10">参考教材和链接</h2>
353355
<p>这里我参考过三本书,均可以网购纸质版或者网络上搜索电子版,建议大家先大致阅读一本教材掌握基本原理:</p>
354356
<p><a href="https://book.douban.com/subject/26979890/">《算法图解》</a>: 图解的形式很适合新手,示例使用的是 python。推荐基础较少的同学看这本书入门</p>
355357
<p><a href="https://book.douban.com/subject/10607365/">《Data Structures and Algorithms in Python》</a>: 适合对 Python
356358
和算法比较熟悉的同学,或者是有其他语言编程经验的同学。本书是英文版,缺点是书中错误真的很多,代码有些无法运行而且不够 Pythonic。该书 <a href="http://bcs.wiley.com/he-bcs/Books?action=resource&amp;bcsId=9003&amp;itemId=0470618299&amp;resourceId=35653">勘误</a></p>
357359
<p><a href="https://book.douban.com/subject/20432061/">《算法导论》第三版</a>: 喜欢数学证明和板砖书的同学可以参考,有很多高级主题。使用伪代码</p>
358-
<h2 id="_11">讲课形式</h2>
360+
<h2 id="_11">算法可视化</h2>
361+
<p>学习算法的过程中有时候会比较抽象,这里给大家推荐一些可视化的网站,方便更直观地理解:</p>
362+
<p>https://github.com/algorithm-visualizer/algorithm-visualizer</p>
363+
<p>https://www.cs.usfca.edu/~galles/visualization/Algorithms.html</p>
364+
<h2 id="_12">讲课形式</h2>
359365
<p>绘图演示+手写板+现场编码</p>
360366
<p>我将使用绘图软件+手写板进行类似于纸笔形式的讲解,边讲边开个终端分成两个窗口,一个用 vim
361367
编写代码,另一个窗口用来运行代码,所有代码我将会现场编写(还是很有挑战的)。
362368
每个视频我会尽量控制时长,讲的内容尽量通俗易懂,摆脱学院派的授课方式。</p>
363369
<p>你可以参考我在知乎发的专栏文章看下:</p>
364370
<p><a href="https://zhuanlan.zhihu.com/p/35175401">那些年,我们一起跪过的算法题[视频]</a></p>
365371
<p><a href="https://zhuanlan.zhihu.com/p/35352024">抱歉,我是开发,你居然让我写单测[视频]</a></p>
366-
<h2 id="_12">课程特点</h2>
372+
<h2 id="_13">课程特点</h2>
367373
<ul>
368374
<li>每个算法和数据结构都有讲义、视频(包含讲解、图示、手动模拟)、源代码。其中只有视频内容为付费内容</li>
369375
<li>讲义循序渐进,结合自己的学习和使用经验讲解。github 上实时更新</li>
@@ -376,17 +382,17 @@ <h2 id="_12">课程特点</h2>
376382
<li>结合 cpython 底层实现讲解(比如list 内存分配策略等),避免一些使用上的坑。并且会用 python 来模拟内置 dict 等的实现</li>
377383
<li>每篇讲义后有思考题和延伸阅读链接,帮助大家加深思考和理解。大部分题目答案都可以网络上搜索到</li>
378384
</ul>
379-
<h2 id="_13">资料</h2>
385+
<h2 id="_14">资料</h2>
380386
<ul>
381387
<li>视频。包含所有讲解视频(网易公开课)</li>
382388
<li>代码示例。所有代码我会放到 github 上。</li>
383389
<li>markdown 讲义,包含视频内容的提要等内容</li>
384390
<li>延伸阅读。我会附上一些阅读资料方便想深入学习的同学</li>
385391
</ul>
386-
<h2 id="_14">如何获取每章代码</h2>
392+
<h2 id="_15">如何获取每章代码</h2>
387393
<p>注意每一章目录里都有 py 文件,在电子书里看不到。clone 下本代码仓库找到对应目录里的 python 文件即是每章涉及到的代码。
388394
由于代码实现千差万别,本书代码实现具有一定的个人风格,不代表最佳实现,仅供参考。</p>
389-
<h2 id="_15">如何学习</h2>
395+
<h2 id="_16">如何学习</h2>
390396
<p>笔者讲课录制视频的过程也是自己再整理和学习的过程,录制视频之前需要参考很多资料
391397
希望对所讲到的内容,你能够</p>
392398
<ul>
@@ -402,10 +408,10 @@ <h2 id="_15">如何学习</h2>
402408
<li>最好按照顺序循序渐进,每章都会有铺垫和联系,后边的章节可能会使用到前面提到的数据结构</li>
403409
<li>根据自己的基础结合我列举的教材和视频学习,第一次理解不了的可以反复多看几次,多编写代码练习到熟练为止</li>
404410
</ul>
405-
<h2 id="_16">课程目标</h2>
411+
<h2 id="_17">课程目标</h2>
406412
<p>掌握基本的算法和数据结构原理,能独立使用 Python 语言实现,能在日常开发中灵活选用数据结构。
407413
对于找工作的同学提升面试成功率。</p>
408-
<h2 id="_17">开发和测试工具</h2>
414+
<h2 id="_18">开发和测试工具</h2>
409415
<p>推荐使用以下工具进行开发,如果使用编辑器最好装对 应 Python 插件,笔者视频演示中使用了 vim,读者可以自己挑选自己喜欢的开发工具:</p>
410416
<ul>
411417
<li>Pycharm</li>
@@ -438,7 +444,7 @@ <h2 id="_17">开发和测试工具</h2>
438444
</code></pre>
439445

440446
<p>然后在你的代码目录里头执行 <code>watchtest pytest -s somefile.py</code> 一样的效果</p>
441-
<h2 id="_18">测试用例设计</h2>
447+
<h2 id="_19">测试用例设计</h2>
442448
<p>笔者在刚学习编程的时候总是忘记处理一些特例(尤其是动态语言可以传各种值),为了养成良好的编程和测试习惯,在编写单元测试用例的时候,
443449
我们注意考虑下如下测试用例(等价类划分):</p>
444450
<ul>
@@ -483,7 +489,7 @@ <h2 id="_18">测试用例设计</h2>
483489

484490
<p>当然我们也不用做的非常细致,要不然写测试是一件非常繁琐累人的事情,甚至有时候为了测试而测试,只是为了让单测覆盖率好看点。
485491
当然如果是web应用用户输入,我们要假设所有的参数都是不可信的。 但是很多内部调用的函数我们基于约定来编程,如果你瞎传参数,那就是调用者的责任了。</p>
486-
<h2 id="_19">勘误</h2>
492+
<h2 id="_20">勘误</h2>
487493
<p>输出其实也是一种再学习的过程,中途需要查看大量资料、编写讲义、视频录制、代码编写等,难免有疏漏甚至错误之处。
488494
有出版社找过笔者想让我出书,一来自己对出书兴趣不大,另外感觉书籍相对视频不够直观,有错误也不能及时修改,打算直接把所有文字内容讲义和代码等放到 github 上,供大家免费查阅。</p>
489495
<p>如果你发现文字内容、代码内容、视频内容有错误或者有疑问,欢迎在 github 上提 issue 讨论(或者网易公开课评论区),或者直接提 Merge Request,我会尽量及时修正相关内容,防止对读者产生误导。
@@ -502,15 +508,15 @@ <h2 id="git">如何更新代码(写给不熟悉 git 的同学)</h2>
502508
</code></pre>
503509

504510
<p>然后使用 <code>git pull pegasuswang master</code> 拉取更新。</p>
505-
<h2 id="_20">如何提问?</h2>
511+
<h2 id="_21">如何提问?</h2>
506512
<p>如果读者关于代码、视频、讲义有任何疑问,欢迎一起讨论
507513
请注意以下几点:</p>
508514
<ul>
509515
<li>优先在网易云课堂的讨论区提问,方便别的同学浏览。如果未购买视频,也可以直接在 github 里提出 issue,笔者有空会给大家解答和讨论。</li>
510516
<li>描述尽量具体,视频或者代码哪一部分有问题?请尽量把涉及章节和代码贴出来,方便定位问题。</li>
511517
<li>如果涉及到代码,提问时请保持代码的格式</li>
512518
</ul>
513-
<h2 id="_21">本电子书制作和写作方式</h2>
519+
<h2 id="_22">本电子书制作和写作方式</h2>
514520
<p>使用 mkdocs 和 markdown 构建,使用 Python-Markdown-Math 完成数学公式。
515521
markdown 语法参考:http://xianbai.me/learn-md/article/about/readme.html</p>
516522
<p>安装依赖:</p>
@@ -581,5 +587,5 @@ <h2 id="_21">本电子书制作和写作方式</h2>
581587

582588
<!--
583589
MkDocs version : 1.0.4
584-
Build Date UTC : 2019-01-09 03:17:34
590+
Build Date UTC : 2019-08-20 02:53:03
585591
-->

0 commit comments

Comments
 (0)