访问: https://jiajunhuang.com/tutorial/data_structure/index.md
在我本科学习数据结构的时候,由于没有项目实战经验,心里充满了疑惑,学习这些数据结构到底有什么用处?在毕业后的这几年, 接触了各式各样的项目,终于理解了数据结构在编程中的重要性。
这个系列教程就是为了解决这样一个问题的,我将会使用很多实际项目中的场景,来说明一种数据结构解决了什么实际问题,他的各种 操作时间复杂度,有何种缺点和优点等等。
由于种种数据结构的典型应用不同,因此本系列中,我们将涉及到 Python,Go 和 C 三种语言,还有一点点汇编知识,但是对此不要感觉到 害怕,他们之间的语法并不会相差太大,基本上 C 语言家族的语言都很类似,相信大家放下心中的恐惧之后可以轻松理解代码的意思。
本系列分为 12 篇,分别介绍了 12 种数据结构在实际项目中的使用:
数组(array)
链表(linked list)
字典(map 或 dict)
栈(stack)
队列(queue)
大小堆(heap)
集合(set(hashset, treeset))
有序集合(树的实现和跳跃表实现,参考 redis)
位图(bitmap)
hyperloglog(参考 redis)
radix tree 或 trie
b tree 和 b+ tree
昨天写完了第一篇 "数组(array)": https://jiajunhuang.com/tutorial/data_structure/array.md
1
cheneydog 2019-09-10 08:53:08 +08:00
出书,出名,赚钱,迎娶白富美,走上人生巅峰。
|
2
Natsuno 2019-09-10 08:54:44 +08:00
支持
|
3
usapla 2019-09-10 09:01:58 +08:00
持续关注
|
4
Jhonson 2019-09-10 09:06:32 +08:00
跟我之前的想法很像,我希望是集思广益,比如 dubbo 里面用到了什么结构时很巧妙的? io 多路复用有哪些结构?每个人都讲讲一些工程中的数据结构,组合起来那就真的强!楼主加油!
|
5
qsnow6 2019-09-10 09:12:42 +08:00
收藏!
|
6
CareiOS 2019-09-10 09:13:22 +08:00
必须赞一个呀。
|
7
doudouwu 2019-09-10 09:15:50 +08:00
很有意思,插眼
|
8
gansteed OP |
9
Egfly 2019-09-10 09:37:59 +08:00 1
找个高级一点的头衔,然后去开个课程,收费就完事了
|
10
userGyl 2019-09-10 09:46:42 +08:00
收藏 关注
|
12
justin2018 2019-09-10 10:12:43 +08:00
nice
|
13
wolfie 2019-09-10 10:15:01 +08:00
手写劝退。。。
|
14
ipwx 2019-09-10 10:16:49 +08:00
我以为诸位学了这些数据结构,之后的职业生涯中在用到某个别人的库或者系统的时候,会自然地猜到这些数据结构的用处的。然而看来是我多想了……
|
15
ipwx 2019-09-10 10:17:47 +08:00 1
我觉得其实一个优秀的程序员应该具有天生的好奇心,用库和系统会去探究其中的原理,自然会联想到数据结构,不需要别人写教程教的……
|
16
gansteed OP @justin2018 感谢支持
@wolfie 哈哈,下一篇注解还是打字吧 @ipwx 其实这个主要是针对工作经验不足的同学的,如开篇所说 "在我本科学习数据结构的时候,由于没有项目实战经验,心里充满了疑惑,学习这些数据结构到底有什么用处?在毕业后的这几年, 接触了各式各样的项目,终于理解了数据结构在编程中的重要性。" |
17
mlhorizon 2019-09-10 10:53:11 +08:00
支持楼主做科普,总结一下对自己也是有好处的。
|
18
Kimiato 2019-09-10 11:13:20 +08:00 via Android
收藏,关注
|
19
bobsam 2019-09-10 11:27:25 +08:00
点赞~
|
20
shyrock 2019-09-10 11:41:01 +08:00
读完了。。。
问题是这根本不是本帖所说的“实际项目中的应用”啊。。。 |
21
gansteed OP |
22
xrr2016 2019-09-10 12:04:06 +08:00 via Android
支持支持,Mark 一下
|
23
lovelife1994 2019-09-10 12:07:07 +08:00 via iPhone
马克
|
24
WytheHuang 2019-09-10 12:44:35 +08:00 via Android
马来人一下
|
25
ClutchBear 2019-09-10 13:24:08 +08:00
这示例图也太艺术性了.
|
26
gansteed OP |
27
raysonlu 2019-09-10 15:18:53 +08:00
马克,认真写,有深度,通俗,自然火起来的
|
28
codespots 2019-09-10 16:38:13 +08:00
关注,小弟前端,一直不知道数据结构在前端中的实际应用,可否在教程里大致提几个例子
|
30
netnr 2019-09-11 06:33:49 +08:00
@gansteed 昨天刚聊到 数据结构、离散数学、数据建模,没上过大学,让我去看看这些东西,今天早上就看到老哥的主题了,缘分哪,持续关注
|
31
qiaogaojian 2019-09-11 11:23:56 +08:00
先回复 养肥在看
|
32
allgy 2019-09-11 11:35:52 +08:00
支持
|
33
LeeChP 2019-09-11 12:17:19 +08:00 via iPhone
插眼插眼
|
34
Varchar 2019-09-11 14:26:48 +08:00 via iPhone
支持下
|
36
webshe11 2019-09-12 06:10:44 +08:00
这个博客的标题吓我一跳
|
37
gansteed OP |
38
kuroismith 2019-09-12 10:17:35 +08:00
推荐工作经验不足的朋友看看 redis 源码, 常见数据结构在 redis 里都有对应的实现, 而且相当简洁, 没什么骚操作.
如果直接源码看不进去可以买本 redis 设计与实现, 写的比较清楚. redis 在业务中很常用, 方便和实际场景结合去理解. 看完了再看 java / c++ 的标准库里面的实现, 就差不多了. |
39
boboyangmoumou 2019-09-16 10:03:53 +08:00
我要关注收藏,没事看看还不错
|