跳转到内容
i
imeows
Gallery
Projects
Studio
Learn
Monitor
About
Studio / 第 05 项
第一季 · 人类如何驯服数据
算法的故事
计算机的每一次突破,都从一个具体的难题开始。沿着发明者的足迹,读懂数据结构、算法与它们背后的取舍。
从第一章开始
浏览第一季
阅读第二季
0 / 30 章已读
算法
的故事
从一条链表开始,
以计算的边界结束。
第一季 30 章:第 1—28 章及终章保留原始课程,第 29 章根据用户要求补写。
查看整理说明
第一季目录
搜索本书全文
输入人物、算法或正文关键词,搜索本书。
01
数组与链表
一场关于秩序与自由的战争
阅读
02
栈与递归
为什么计算机必须记住自己从哪里来?
阅读
03
队列
一台价值350万美元的计算机,为什么还要排队?
阅读
04
哈希表
一个裁缝如何改变计算机寻找信息的方式
阅读
05
树的革命
两个苏联数学家,如何让计算机学会保持平衡?
阅读
06
七座桥与一杯咖啡
人类如何发明寻找最短路径的算法?
阅读
07
排序算法的战争
一个年轻人躺在莫斯科的沙发上,改变了计算机世界
阅读
08
动态规划
一位数学家为什么给自己的伟大发明起了个奇怪的名字?
阅读
09
贪心算法
1926年,一位数学家如何用最便宜的电线连接整片地区?
阅读
10
回溯算法
1848年,一位棋手提出了连高斯都没能完全解开的谜题
阅读
11
字符串匹配
1969年,一位程序员发现计算机竟然不会利用自己的记忆
阅读
12
压缩算法
1948年,信息究竟能被压缩到多小?
阅读
13
LZ77 与 ZIP
1977年,两位科学家决定让计算机不再重复保存同一句话
阅读
14
密码学的革命
1976年,为什么公开一把钥匙,反而能保护秘密?
阅读
15
一致性哈希
1997年,六位研究者如何让服务器扩容不再引发数据大迁徙?
阅读
16
拜占庭将军
1982年,为什么三个人竟然无法保证做出同一个决定?
阅读
17
布隆过滤器
1970年,一位科学家为什么故意发明一种会判断错误的数据结构?
阅读
18
跳表
1989年,一位计算机科学家为什么决定用抛硬币代替平衡树的旋转?
阅读
19
缓存算法的战争
1969年,为什么给计算机增加内存,反而可能让它变慢?
阅读
20
数据库事务
1970年代,为什么一笔转账绝不能只成功一半?
阅读
21
死锁
1960年代,为什么两个程序都没有出错,整个计算机却停止了工作?
阅读
22
垃圾回收
1960年,为什么让计算机自动释放内存,反而创造了更复杂的算法?
阅读
23
一致性模型
1979年,为什么写入已经成功,另一台计算机却仍然读到了旧数据?
阅读
24
CRDT
2011年,为什么两台断网的计算机,最后竟然可以自动合并各自的修改?
阅读
25
向量时钟
1988年,为什么两台计算机的时间戳不同,却不能证明谁先谁后?
阅读
26
分布式快照
1985年,为什么不暂停整个网络,也能拍下一张全局一致的照片?
阅读
27
MapReduce
2004年,Google 如何让上千台普通计算机共同处理海量数据?
阅读
28
PageRank
1998年,为什么一个网页的重要性,取决于哪些网页指向了它?
阅读
29
搜索的秩序
1972年,为什么一个罕见的词,比一千次重复更值得注意?
阅读
30
算法的极限
1936年,图灵为什么证明,有些问题永远不可能被程序彻底解决? · 第一季终章
阅读