• 第 0 章   前言
    • 0.1   关于本书
    • 0.2   如何使用本书
    • 0.3   小结
  • 第 1 章   初识算法
    • 1.1   算法无处不在
    • 1.2   算法是什么
    • 1.3   小结
  • 第 2 章   复杂度分析
    • 2.1   算法效率评估
    • 2.2   迭代与递归
    • 2.3   时间复杂度
    • 2.4   空间复杂度
    • 2.5   小结
  • 第 3 章   数据结构
    • 3.1   数据结构分类
    • 3.2   基本数据类型
    • 3.3   数字编码 *
    • 3.4   字符编码 *
    • 3.5   小结
  • 第 4 章   数组与链表
    • 4.1   数组
    • 4.2   链表
    • 4.3   列表
    • 4.4   内存与缓存 *
    • 4.5   小结
  • 第 5 章   栈与队列
    • 5.1   栈
    • 5.2   队列
    • 5.3   双向队列
    • 5.4   小结
  • 第 6 章   哈希表
    • 6.1   哈希表
    • 6.2   哈希冲突
    • 6.3   哈希算法
    • 6.4   小结
  • 第 7 章   树
    • 7.1   二叉树
    • 7.2   二叉树遍历
    • 7.3   二叉树数组表示
    • 7.4   二叉搜索树
    • 7.5   AVL 树 *
    • 7.6   小结
  • 第 8 章   堆
    • 8.1   堆
    • 8.2   建堆操作
    • 8.3   Top-K 问题
    • 8.4   小结
  • 第 9 章   图
    • 9.1   图
    • 9.2   图基础操作
    • 9.3   图的遍历
    • 9.4   小结
  • 第 10 章   搜索
    • 10.1   二分查找
    • 10.2   二分查找插入点
    • 10.3   二分查找边界
    • 10.4   哈希优化策略
    • 10.5   重识搜索算法
    • 10.6   小结
  • 第 11 章   排序
    • 11.1   排序算法
    • 11.2   选择排序
    • 11.3   冒泡排序
    • 11.4   插入排序
    • 11.5   快速排序
    • 11.6   归并排序
    • 11.7   堆排序
    • 11.8   桶排序
    • 11.9   计数排序
    • 11.10   基数排序
    • 11.11   小结
  • 第 12 章   分治
    • 12.1   分治算法
    • 12.2   分治搜索策略
    • 12.3   构建树问题
    • 12.4   汉诺塔问题
    • 12.5   小结
  • 第 13 章   回溯
    • 13.1   回溯算法
    • 13.2   全排列问题
    • 13.3   子集和问题
    • 13.4   N 皇后问题
    • 13.5   小结
  • 第 14 章   动态规划
    • 14.1   初探动态规划
    • 14.2   DP 问题特性
    • 14.3   DP 解题思路
    • 14.4   0-1 背包问题
    • 14.5   完全背包问题
    • 14.6   编辑距离问题
    • 14.7   小结
  • 第 15 章   贪心
    • 15.1   贪心算法
    • 15.2   分数背包问题
    • 15.3   最大容量问题
    • 15.4   最大切分乘积问题
    • 15.5   小结
  • 第 16 章   附录
    • 16.1   编程环境安装
    • 16.2   一起参与创作
    • 16.3   术语表
  • 参考文献