《算法图解》是一本视觉丰富的指南,旨在让复杂的算法对程序员和爱好者变得易于理解。该书涵盖了一系列算法,通过实用的例子和视觉辅助工具进行讲解。书籍从基础主题(如大O表示法和基本数据结构:数组和链表)开始,逐步介绍更复杂的主题(如排序算法、递归、图算法和动态规划)。每一章都建立在前一章的基础上,通过练习和多种解释方式来强化核心概念,确保读者能够清晰理解。
目录
- 前言
- 致谢
- 关于本书
- 算法简介
- 介绍
- 二分查找
- 运行时间
- 大O表示法
- 旅行商问题
- 选择排序
- 内存工作原理
- 数组和链表
- 在列表中间插入
- 删除
- 选择排序
- 递归
- 递归
- 基本情况和递归情况
- 栈
- 调用栈
- 回顾
- 快速排序
- 分而治之
- 快速排序
- 再谈大O表示法
- 归并排序 vs. 快速排序
- 平均情况 vs. 最坏情况
- 回顾
- 哈希表
- 哈希函数
- 使用案例
- 使用哈希表进行查找
- 防止重复条目
- 使用哈希表作为缓存
- 碰撞
- 性能
- 负载因子
- 一个好的哈希函数
- 回顾
- 广度优先搜索
- 图简介
- 什么是图?
- 广度优先搜索
- 寻找最短路径
- 队列
- 实现图
- 实现算法
- 运行时间
- 回顾
- 迪杰斯特拉算法
- 迪杰斯特拉算法工作原理
- 术语
- 换钢琴
- 负权边
- 实现
- 回顾
- 贪婪算法
- 课堂调度问题
- 背包问题
- 集合覆盖问题
- 近似算法
- NP完全问题
- 旅行商逐步解法
- 如何判断问题是否是NP完全问题
- 回顾
- 动态规划
- 背包问题
- 动态规划
- 背包问题常见问题
- 优化旅行行程
- 处理相互依赖的项目
- 最长公共子串
- 最长公共子序列
- 回顾
- K近邻算法
- 橙子 vs. 葡萄柚分类
- 构建推荐系统
- 特征提取
- 回归
- 选择好的特征
- 机器学习简介
- 光学字符识别(OCR)
- 构建垃圾邮件过滤器
- 预测股市
- 回顾
- 接下来要做什么
- 树
- 倒排索引
- 傅里叶变换
- 并行算法
- MapReduce
- 布隆过滤器和HyperLogLog
- SHA算法
- 文件比较
- 检查密码
- 局部敏感哈希
- Diffie-Hellman密钥交换
- 线性规划
- 尾声
- 练习答案
- 索引