Skip to content

Commit 243656e

Browse files
committed
章节目录和图介绍
1 parent 4847ccc commit 243656e

File tree

7 files changed

+33
-2
lines changed

7 files changed

+33
-2
lines changed

docs/10_递归/recursion.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,4 +198,4 @@ Move A -> C
198198
- 你能举出其他一些使用到递归的例子吗?
199199
- 实现一个 flatten 函数,把嵌套的列表扁平化,你需要用递归函数来实现。比如 [[1,2], [1,2,3] -> [1,2,1,2,3]
200200
- 使用递归和循环各有什么优缺点,你能想到吗?怎么把一个尾递归用迭代替换?
201-
- 递归有时候虽然很优雅,但是时间复杂度却不理想,比如斐波那契数列,它的表达式是 F(n) = F(n-1) + F(n-2),你能计算它的时间复杂度吗?我们怎样去优化它
201+
- 递归有时候虽然很优雅直观,但是时间复杂度却不理想,比如斐波那契数列,它的表达式是 F(n) = F(n-1) + F(n-2),你能计算它的时间复杂度吗?请你画个树来表示它的计算过程,为什么这个时间复杂度很不理想?我们怎样去优化它

docs/13_高级排序算法/quick_sort.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,3 +105,4 @@ T(n) = 2T(n/2) + n
105105

106106
# 延伸阅读
107107
- 《算法导论》第 7 章
108+
- [《面试必备 | 排序算法的Python实现》](https://zhuanlan.zhihu.com/p/36419582)

docs/18_图与图的遍历/graph.md

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,26 @@
11
#
22
之前们讲过很多数据结构了,包括线性结构、链式结构、树结构等,这些结构基本就能应付我们的业务开发了。
3-
这一章来看下图结构。
3+
这一章来看下图结构,图的使用也比较广泛,比如人物关系、路径选择等等,相比前面的一些数据结构和算法要相对复杂一些。
4+
不过也不用担心,除非是特定的后端业务,一般图结构的使用比较少。这一章我们简单地介绍下图结构,以及图的搜索算法。
5+
6+
# 什么是图?
7+
我们先来考虑日常生活中的一个问题,我们在出行的时候一般会考虑使用地图软件搜下从一个地点到另外一个地点的路线。
8+
这里把地点抽象成一个圈,路径抽象成线,于是乎就有了下面的图,其实还是非常好理解的。
9+
10+
![](./graph_road.png)
11+
12+
简单地说就是有节点(node)和边(edge)组成的一种数据结构,相邻的节点称之为邻居。 注意图分为有向图和无向图,
13+
比如有些路是单行道,有些是双行道,有向图我们用箭头指向,无向图就是一条直线连接。
14+
15+
# 图的表示
16+
那我们怎么把一个图抽象成代码来表示呢?因为最终我们还是需要代码来实现的。通常有两种表示方法,邻接表法和邻接矩阵表示。
17+
18+
19+
420

521

622
# 思考题
723

824
# 延伸阅读
925
- [数据结构之图](https://www.zybuluo.com/guoxs/note/249812)
26+
- 《算法图解》第六章
73.2 KB
Loading
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Python 常用内置算法和数据结构
2+
3+
之前在每章的数据结构和算法中涉及到的章节我都会提到对应的 python 内置模块,一般如果内置的可以满足需求,我们优先使用内置模块,一般在性能和容错性方面要好于我们自己实现。(比如有些是 c 实现的),这里我们重新列举一下。
4+
5+
6+
7+
8+
# 结语
9+
这套教程列举的算法很有限,包括图算法、贪心,动态规划,机器学习算法等很多没有涉及到,因为它们确实需要读者更深入的理论基础,而且这套教程的目的也不是针对算法竞赛。
10+
不过了解了本教程涉及到的大部分算法是可以应付绝大多数的业务开发的。如果读者对算法有兴趣,本教程引用的几本参考书都可以去深入学习。希望本教程能对你学习算法、养成良好的思维方式和编码习惯等有所帮助。

docs/20_面试指南/interview.md

Whitespace-only changes.

mkdocs.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,6 @@ pages:
3030
- 堆和堆排序: '15_堆与堆排序/heap_and_heapsort.md'
3131
- 优先级队列: '16_优先级队列/priority_queue.md'
3232
- 二叉查找树: '17_二叉查找树/binary_search_tree.md'
33+
- 图与图的遍历: '18_图与图的遍历/graph.md'
34+
- python内置常用算法和数据结构: '19_python内置常用算法和数据结构/builtins.md'
35+
- 面试指南: '20_面试指南/interview.md'

0 commit comments

Comments
 (0)