目录是我从其他课程复制下来的感觉很全,希望自己可以快速完成全部的内容,慢慢会更新,会对目录进行一定的修改
第一部分:数据结构
一 数据结构基础
1.1 RAM模型
1.2 抽象算法设计
1.3 算法复杂度分析
二 线性表
三 哈希表与集合
四 栈和队列
4.1栈
4.1.1抽象数据类型栈的定义
4.1.2栈的表示和实现
4.1.2.1 数组栈
4.1.2.2 正向链式栈
4.1.2.3 反向链式栈
4.2栈的应用举例
4.2.1数制转换
4.2.2括号匹配的检验
4.2.3行编辑程序
4.2.4迷宫求解
4.2.5表达式求值
4.2.6汉诺塔
4.3栈与递归的实现
4.4队列
4.4.1抽象数据类型队列的定义
4.4.2链队列——队列的数组表示和实现
4.4.3链队列——队列的链式表示和实现
4.4.4循环队列——队列的数组表示和实现
4.4.5双端队列——队列的数组表示和实现
4.4.6双端队列——队列的链表表示和实现
4.4.7优先队列初步——队列的数组表示和实现
4.4.8优先队列初步——队列的链表表示和实现
4.5离散事件模拟
4.6用栈模拟递归
4.7用队列模拟递归
4.8树状文件夹遍历
4.9栈的用途
4.10队列的用途
五 字符串
5.1 串及串匹配
5.2 蛮力算法
5.3 KMP算法
5.4 BM算法
5.5 Karp-Rabin算法
5.6字符串实现高精度加法
5.7字符串实现高精度减法
5.8字符串实现高精度乘法
5.9字符串实现高精度除法
5.10AC自动机
5.11分词与SIM哈希
六 数组和矩阵
6.1 数组
6.1.1 抽象数据类型
6.1.2 不规则二维数组
6.1.3 数组嵌套
6.2 矩阵
6.2.1 定义和操作
6.2.2 类matrix
6.3 特殊矩阵
6.3.1 定义和应用
6.3.2 对角矩阵
6.3.3 三对角矩阵
6.3.4 三角矩阵
6.3.5 对称矩阵
6.4 特殊矩阵与稀疏矩阵
6.4.1 基本概念
6.4.2 用单个线性表描述
6.4.3 用多个线性表描述
6.4.4 性能测量
6.4.5矩阵的压缩存储
6.5广义表的定义
6.6广义表的存储结构
6.7m元多项式的表示
6.8广义表的递归算法
6.8.1求广义表的深度
6.8.2复制广义表
6.8.3建立广义表的存储结构
七 树和二叉树
7.1树的定义和基本术语
7.2二叉树
7.2.1二叉树的定义
7.2.2二叉树的性质
7.2.3二叉树的存储结构
7.2.4二叉树的实现
7.3遍历二叉树和线索二叉树
7.3.1遍历二叉树
7.3.2线索二叉树
7.4树和森林
7.4.1树的存储结构
7.4.2森林与二叉树的转换
7.4.3树和森林的遍历
7.5树与等价问题
7.6编码树,Huffman树及其应用
7.7.1最优二叉树(Huffman树)
7.7.2Huffman编码实现压缩解压缩
7.7回溯法与树的遍历
7.8树的计数
八 平衡搜索树
8.1 AVL树
8.1.1 定义
8.1.2 AVL树的高度
8.1.3 AVL树的描述
8.1.4 AVL搜索树的搜索
8.1.5 AVL搜索树的插入
8.1.6 AVL搜索树的删除
8.2 红-黑树
8.2.1 基本概念
8.2.2 红-黑树的描述
8.2.3 红-黑树的搜索
8.2.4 红-黑树的插入
8.2.5 红-黑树的删除
8.2.6 实现细节的考虑及复杂性分析
8.3 分裂树
8.3.1 介绍
8.3.2 分裂树的操作
8.3.3 折算复杂性
8.4 B-树
8.4.1 索引顺序访问方法
8.4.2 m叉搜索树
8.4.3 m阶B-树
8.4.4 B-树的高度
8.4.5 B-树的搜索
8.4.6 B-树的插入
8.4.7 B-树的删除
8.4.8 节点结构
九 图
9.1 基本概念
9.2 应用和更多的概念
9.3 特性
9.4 抽象数据类型graph
9.5 无权图的描述
9.5.1 邻接矩阵
9.5.2 邻接链表
9.5.3 邻接数组
9.6 加权图的描述
9.7 类实现
9.7.1 不同的类
9.7.2 邻接矩阵类
9.7.3 扩充chain类
9.7.4 链表类
9.8 图的遍历
9.8.1 广度优先搜索
9.8.2 广度优先搜索的实现
9.8.3 方法graph:bfs的复杂性分析
9.8.4 深度优先搜索
9.8.5 深度优先搜索的实现
9.8.6 方法graph:dfs的复杂性分析
9.9 应用
9.9.1 寻找一条路径Dijskra算法
9.9.2 连通图及其构成
9.9.3 最小生成树,普里姆算法,克鲁斯卡尔算法 BottleNeck算法,MstReducePrim算法,SecondaryMst算法
9.9.4 最短路径 A*算法 floyd算法 Dijskra算法 Bellman算法,SPFA算法,JohnSon算法
9.9.5拓扑排序
9.10 网络流
9.10.1 流网络
9.10.2 Ford\Fulkerson方法
9.10.3 最大二分匹配
9.10.4 推送重贴标签算法
9.10.5 前置重贴标签算法
9.11拓扑排序
9.13DAG有向无环图
第10 跳表和字典
10.1 字典
10.2 抽象数据类型
10.3 线性表描述
10.4 跳表表示(可选)
10.4.1 理想情况
10.4.2 插入和删除
10.4.3 级的分配
10.4.4 结构skipNode
10.4.5 类skipList
10.4.6 skipList方法的复杂度
十一 bitmap与布隆过滤器
11.1位运算快速回顾与bitset实现
11.2 bitmap实战
11.3 布隆过滤器实现
十二 外部排序
12.1外存信息的存取
12.2外部排序的方法
12.3多路平衡归并的实现
12.4置换选择排序
12.5最佳归并树
十三 文件
13.1有关文件的基本概念
13.2顺序文件
13.3索引文件
13.4isam文件和vsam文件
13.4.1isam文件
13.4.2vsam文件
13.5直接存取文件(散列文件)
13.6多关键字文件
13.6.1多重表文件
13.6.2倒排文件
十四 优先级队列
14.1 定义和应用
14.2 抽象数据类型
14.3 线性表
14.4 堆
14.4.1 定义
14.4.2 大根堆的插入
14.4.3 大根堆的删除
14.4.4 大根堆的初始化
14.4.5 类maxHeap
14.4.6 堆和STL
14.5 左高树
14.5.1 高度优先与宽度优先的最大及最小左高树
14.5.2 最大HBLT的插入
14.5.3 最大HBLT的删除
14.5.4 两棵最大HBLT的合并
14.5.5 初始化
14.5.6 类maxHblt
14.6 堆延申
14.6.1 斐波那契堆
14.6.2 Treap
14.6.3 pair堆
14.6.4 rank-pair堆
14.6.5 二项堆
14.7 应用
14.7.1 堆排序
14.7.2 机器调度
十五 Java JVM内存回收管理演变
15.1概述
15.2可利用空间表及分配方法
15.3边界标识法
15.3.1可利用空间表的结构
15.3.2分配算法
15.3.3回收算法
15.4伙伴系统
15.4.1可利用空间表的结构
15.4.2分配算法
15.4.3回收算法
15.5无用单元收集
15.6存储紧缩
十六 竞赛树
16.1 赢者树和应用
16.2 抽象数据类型WinnerTree
16.3 赢者树的实现
16.3.1 表示
16.3.2 赢者树的初始化
16.3.3 重新组织比赛
16.3.4 类completeWinnerTree
16.4 输者树
16.5 应用
16.5.1 用最先适配法求解箱子装载问题
16.5.2 用相邻适配法求解箱子装载问题
第17章 高级树
17.1 伸展树
17.2 B+树
17.3 2-3树
17.4 kd-树
17.5 树堆
17.6 散列树
17.7 topTree
17.8 笛卡尔树
17.9 T树
17.10 Dancing Tree
17.11 前缀树后缀树基数树
17.12 R树 线段树
17.13 区间树
17.14PQ树
17.15 VEB树
17.16 Link-cut tree与Cover tree
17.17 并查集
第二部分:算法
一 数学基础
二 初等数论与组合数学
2.1 整除
2.2 质数与合数
2.3 质数筛法
2.4 质因数分解
2.5 最大公约数和最小公倍数
2.6 模运算
2.7 同余
2.8 欧几里得算法
2.9 扩展欧几里得算法
2.10 模意义下的乘法逆元
2.11 与质数有关的定理
2.12 线性同余方程
2.13 中国剩余定理
2.14基本计数原理
2.15 排列
2.16 组合
2.17 杨辉三角
2.18 特殊排列组合
2.19 stirling数
2.20 Catalan数
2.21 容斥原理
2.22 鸽巢原理
三 暴力求解法
3.1 简单枚举
3.2 枚举排列
3.2.1 生成1~n的排列
3.2.2 生成可重集的排列
3.2.3 解答树
3.2.4 下一个排列
3.3 子集生成
3.3.1 增量构造法
3.3.2 位向量法
3.3.3 二进制法
3.4 回溯法
3.4.1 八皇后问题
3.4.2 其他应用举例
3.5 路径寻找问题
3.6 迭代加深搜索
四 数论算法
4.1 基础数论概念
4.2 最大公约数
4.3 模运算
4.4 求解模线性方程
4.5 中国余数定理
4.6 元素的幂
4.7 RSA公钥加密系统
4.8 素数的测试
4.9 整数的因子分解
五 概率分析和随机算法
5.1 雇用问题
5.2 指示器随机变量
5.3 随机算法
5.4 概率分析和指示器随机变量的进一步使用
5.4.1 生日悖论
5.4.2 球与箱子
5.4.3 特征序列
5.4.4 在线雇用问题
六 贪婪算法
6.1 最优化问题
6.2 贪婪算法思想
6.3 应用
6.3.1 货箱装载
6.3.2 0/1背包问题
6.3.3 拓扑排序
6.3.4 二分覆盖
6.3.5 单源最短路径
6.3.6 最小成本生成树
6.3.7赫夫曼编码
6.3.8 拟阵和贪心算法
6.3.9 用拟阵求解任务调度问题
七 分而治之
7.1 算法思想
7.2 应用
7.2.1 残缺棋盘
7.2.2 归并排序
7.2.3 快速排序
7.2.4 选择
7.2.5 相距最近的点对
7.3 解递归方程
7.4 复杂度的下限
7.4.1 最小最大问题的下限
7.4.2 排序算法的下限
7.4.3 最大子数组问题
7.4.4 矩阵乘法的Strassen算法
7.4.5 用代入法求解递归式
7.4.5 用递归树方法求解递归式
7.4.6 用主方法求解递归式
7.4.7 证明主定理
7.4.8 对b的幂证明主定理
7.4.9 向下取整和向上取整
八 动态规划
8.1 算法思想
8.2 应用
8.2.1 0/1背包问题
8.2.2 矩阵乘法链
8.2.3 所有顶点对之间的最短路径
8.2.4 带有负值的单源最短路径
8.2.5 网组的无交叉子集
8.2.6 钢条切割
8.2.7 最长公共子序列
8.2.8 最优二叉搜索树
8.2.9 最大连续子序列和
8.2.10 最长不下降子序列(LIS)
8.2.11 最长回文子串
8.2.12 DAG最长路
8.2.13 背包问题
九 回溯法
9.1 算法思想
9.2 应用
9.2.1 货箱装载
9.2.2 0/1背包问题
9.2.3 最大完备子图
9.2.4 旅行商问题
9.2.5 电路板排列
十 分支定界
10.1 算法思想
10.2 应用
10.2.1 货箱装载
10.2.2 0/1背包问题
10.2.3 最大完备子图
10.2.4 旅行商问题
10.2.5 电路板排列
十一 摊还分析
11.1 聚合分析
11.2 核算法
11.3 势能法
11.4 动态表
11.4.1 表扩张
11.4.2 表扩张和收缩
十二 线性规划
12.1 标准型和松弛型
12.2 将问题表达为线性规划
12.3 单纯形算法
12.4 对偶性
12.5 初始基本可行解
十三 多项式与快速傅里叶变换
13.1 多项式的表示
13.2 DFT与FFT
13.3 高效FFT实现
十四 计算几何学
14.1 多边形
14.1.1 计算几何误差修正
14.1.2 计算几何点类
14.1.3 计算几何线段类
14.1.4 多边形类
14.1.5 多边形的重心
14.1.6 多边形内格点数
14.1.7 凸多边形类
14.1.8 凸多边形的直径
14.1.9 半平面切割多边形
14.1.10 半平面交
14.1.11 凸多边形交
14.1.12 多边形的核
14.1.13 凸多边形与直线集交
14.2 圆
14.2.1 圆与线求交
14.2.2 圆与多边形交的面积
14.2.3 最小圆覆盖
14.2.4 圆与圆求交
14.2.5 圆的离散化
14.2.6 圆的面积并
14.3 三维计算几何
14.3.1 三维点类
14.3.2 三维直线类
14.3.3 三维平面类
14.3.4 三维向量旋转
14.3.5 长方体表面两点最短距离
14.3.6 四面体体积
14.3.7 最小球覆盖
14.3.8 三维凸包
14.4 其他
14.4.1 三角形的四心
14.4.2 最近点对
14.4.3 平面最小曼哈顿距离生成树
14.4.4 最大空凸包
14.4.5 平面划分
十五 NP完全性
15.1 多项式时间
15.2 多项式时间的验证
15.3 NP完全性与可归约性
15.4 NP完全性的证明
15.5 NP完全问题
15.5.1 团问题
15.5.2 顶点覆盖问题
15.5.3 哈密顿回路问题
15.5.4 旅行商问题
15.5.5 子集和问题
十六 近似算法
16.1 顶点覆盖问题
16.2 旅行商问题
16.2.1 满足三角不等式的旅行商问题
16.2.2 一般旅行商问题
16.3 集合覆盖问题
16.4 随机化和线性规划
16.5 子集和问题
十七 高级算法专题
17.1 爬山法
17.2 模拟退火法
17.3 遗传算法
17.4 粒子群算法
17.5 LRU缓存算法
17.6 蚂蚁群算法
17.7 神经网络算法
第三部分:高并发算法
一 多线程算法
1.1 动态多线程基础
1.2 多线程矩阵乘法
1.3 多线程归并排序
1.4 多线程快速排序
1.5 多线程计算递归
1.6 多线程粒子群算法
1.7 多线程CAS算法
二 线程安全数据结构
2.1 线程安全
2.2 线程安全队列
2.3 线程安全数据结构通用范式
三 排名,锁,高并发高性能的秒杀实战
3.1 并发优先队列排名
3.2 锁与秒杀
3.3 高并发实现限流计数器法
3.4 高并发实现限流漏桶法
3.5 高并发实现限流令牌桶
四 调度算法
4.1优先调度算法
4.1.1.先来先服务调度算法(FCFS)
4.1.2.短作业(进程)优先调度算法
4.2高优先权优先调度算法
4.2.1.非抢占式优先权算法
4.2.2.抢占式优先权调度算法
4.2.3.高响应比优先调度算法
4.3 基于时间片的轮转调度算法
4.3.1.时间片轮转法
4.3.2.多级反馈队列调度算法
4.4 circuit-breaker 熔断算法
第四部分:分布式数据结构算法
一 分布式哈希表
二 分布式负载均衡算法
轮询法
随机法
源地址哈希法
加权轮询法
加权随机法
键值范围法
最小连接数法
最快响应速度法
观察模式法