Algorithm-Data_structure Algorithm and data structure(算法及数据结构) title: 2018-11-15算法与数据结构 tags: grammar_cjkRuby: true [toc!] 第一章 - 算法基础 1.1 算法复杂度计算 1.2 神奇的兔子数列 第二章 - 线性表 2.1 链表 2.2 链表实例 第三章 - 栈与队列 3.1 栈 3.2 队列 第四章 - 数组 4.1 数组 4.2 特殊矩阵的压缩存储 第五章 - 字符串 5.1 字符串 5.2 KMP算法 第六章 - 二叉树 6.1 二叉树存储 6.2 二叉树遍历 第七章 - 树+贪心 7.1 哈夫曼树 7.2 哈夫曼编码 第八章 - 图的存储 8.1 邻接矩阵 8.2 邻接表 第九章 - 图搜索 9.1 深度优先搜索 9.2 广度优先搜索 第十章 - 图的连通性 10.1 连通分量 10.2 Tarjan算法 第一十一章 - 图+贪心 11.1 最短路径 11.2 Dijkstra、Floyd算法 11.3 最小生成树 11.4 Prim、Kruskal算法 第一十二章 - 图的应用 12.1 拓扑排序 12.3 关键路径 第一十三章 - 查找+分治 13.1 折半查找 13.2 哈希表 第一十四章 - 数表查找 14.1 二叉搜索树 14.3 平衡二叉树 第一十五章 - 简单排序 15.1 插入排序 15.2 冒泡排序 第一十六章 - 排序+分治 16.1 快速排序 16.2 归并排序 第一十七章 - 树形排序 17.1 选择排序 17.2 堆排序 第一十八章 - 分配排序 18.1 桶排序 18.2 基数排序 第一十九章 - 高级数据结构 19.1 并查集 19.3 优先队列 19.5 树状数组 19.7 线段树 19.9 倍增、ST表、RMQ 19.11 LCA 19.13 Treap树 19.15 树链剖分 19.17 字典树 19.19 后缀数组 19.21 分块 19.23 点分治 19.25 边分治 19.27 AC自动机 19.29 B-树 19.33 红黑树 19.37 伸展树Splay 19.39 K-D树 19.41 动态树 19.43 左偏树(可合并堆) 19.45 SBT树 19.47 跳表 19.49 树套树 19.51 可持久化数据结构 第二十章 - 贪心+动态规划 20.1 背包问题 20.2 01背包问题 第二十一章 - 动态规划 21.1 线性DP 21.2 最长公共子序列、最长上升子序列 21.3 树形DP 21.4 背包类树形DP 21.5 区间DP 21.6 矩阵连乘、石子合并 21.7 数位DP 21.8 数字游戏 21.9 状态压缩DP 21.10 旅行商 21.11 插头DP 第二十二章 - 动态规划优化 22.1 倍增优化 22.2 数据结构优化 22.3 单调队列优化 22.4 斜率优化 22.5 四边不等式优化 第二十三章 - 深度搜索应用 23.1 回溯法 23.2 01背包 23.3 地图着色 23.4 n皇后 23.5 最优加工顺序 第二十四章 - 广度搜索应用 24.1 01背包 24.2 旅行商问题 第二十五章 - 启发式搜索 25.1 A*搜索 第二十六章 - 最大流 26.1 最短增广路算法 26.2 Dinic算法 第二十七章 - 最大流改进算法 27.1 标签算法ISPA 第二十八章 - 二分图最大匹配 28.1 配对方案 28.2 匈牙利算法 第二十九章 - 最大流最小割 29.1 最大收益 29.2 方格取数 第三十章 - 最小费用最大流 30.1 最小费用路算法 30.2 消圈算法 第三十一章 - 竞赛/面试专题 31.1 参加竞赛要注意的问题 31.2 参加面试要注意的问题