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年,信息究竟能被压缩到多小?阅读13LZ77 与 ZIP1977年,两位科学家决定让计算机不再重复保存同一句话阅读14密码学的革命1976年,为什么公开一把钥匙,反而能保护秘密?阅读15一致性哈希1997年,六位研究者如何让服务器扩容不再引发数据大迁徙?阅读16拜占庭将军1982年,为什么三个人竟然无法保证做出同一个决定?阅读17布隆过滤器1970年,一位科学家为什么故意发明一种会判断错误的数据结构?阅读18跳表1989年,一位计算机科学家为什么决定用抛硬币代替平衡树的旋转?阅读19缓存算法的战争1969年,为什么给计算机增加内存,反而可能让它变慢?阅读20数据库事务1970年代,为什么一笔转账绝不能只成功一半?阅读21死锁1960年代,为什么两个程序都没有出错,整个计算机却停止了工作?阅读22垃圾回收1960年,为什么让计算机自动释放内存,反而创造了更复杂的算法?阅读23一致性模型1979年,为什么写入已经成功,另一台计算机却仍然读到了旧数据?阅读24CRDT2011年,为什么两台断网的计算机,最后竟然可以自动合并各自的修改?阅读25向量时钟1988年,为什么两台计算机的时间戳不同,却不能证明谁先谁后?阅读26分布式快照1985年,为什么不暂停整个网络,也能拍下一张全局一致的照片?阅读27MapReduce2004年,Google 如何让上千台普通计算机共同处理海量数据?阅读28PageRank1998年,为什么一个网页的重要性,取决于哪些网页指向了它?阅读29搜索的秩序1972年,为什么一个罕见的词,比一千次重复更值得注意?阅读30算法的极限1936年,图灵为什么证明,有些问题永远不可能被程序彻底解决? · 第一季终章阅读