本书是一本充满智慧和趣味的算法入门书。没有枯燥的描述,没有难懂的公式,一切以实际应用为出发点,通过幽默的语言配以可爱的插图来讲解算法。你更像是在阅读一个个轻松的小故事或是在玩一把趣味解谜游戏,在轻松愉悦中便掌握算法精髓,感受算法之美。本书中涉及的数据结构有栈、队列、链表、树、并查集、堆和图等;涉及的算法有排序、枚举、深度和广度优先搜索、图的遍历,当然还有图论中不可以缺少的四种路径算法、两种生成树算法、割点与割边算法、二分图的匹配算法等。
章 一大波数正在靠近——排序
节 最快最简单的排序——桶排序
第2节 邻居好说话——冒泡排序
第3节 最常用的排序——快速排序
第4节 小哼买书
第2章 栈、队列、链表
节 解密QQ号——队列
第2节 解密回文——栈
第3节 纸牌游戏——小猫钓鱼
第4节 链表
第5节 模拟链表
第3章 枚举!很暴力
节 坑爹的奥数
第2节 炸弹人
第3节 火柴棍等式
第4节 数的全排列
第4章 万能的搜索
节 不撞南墙不回头——深度优先搜索
第2节 解救小哈
第3节 层层递进——广度优先搜索
第4节 再解炸弹人
第5节 宝岛探险
第6节 水管工游戏
第5章 图的遍历
节 深度和广度优先究竟是指啥
第2节 城市地图——图的深度优先遍历
第3节 最少转机——图的广度优先遍历
第6章 最短路径
节 只有五行的算法——Floyd-Warshall
第2节 Dijkstra算法——单源最短路
第3节 Bellman-Ford——解决负权边
第4节 Bellman-Ford 的队列优化
第5节 最短路径算法对比分析
第7章 神奇的树
节 开启“树”之旅
第2节 二叉树
第3节 堆——神奇的优先队列
第4节 擒贼先擒王——并查集
第8章 更多精彩算法
节 镖局运镖——图的最小生成树
第2节 再谈最小生成树
第3节 重要城市——图的割点
第4节 关键道路——用Tarjan算法求图的割边(桥)
第5节 我要做月老——二分图优选匹配
第9章 还能更好吗——微软亚洲研究院面试