1.语言与计算机
递归调用
向前引用
随机化
指针类型
按位运算
2.排序
冒泡排序(起泡排序)
选择排序
插入排序
★ Shell排序
快速排序
线性时间排序
查找第k大元素
带第二关键字的排序
3.数论(一)
素性判断
筛选建立素数表
分解质因数
进制转换
二分取幂
★二分求解线性递推方程
4.数论(二)
求最大公约数
求最小公倍数
★扩展的辗转相除
★求解一元一次同余式
★中国剩余定理
★高斯消元
5.四则运算
表达式计算
高精度加法
高精度减法
高精度乘法
★高精度除法
6.图论:最小生成树
Prim算法
Kruskal算法
★Boruvka算法
次小生成树
7.图论:求最短路
Dijkstra算法
Bellman-Ford算法
Floyd-Warshall算法
次短路
★差分约束系统
8.图论:DFS遍历
深度优先搜索
欧拉回路
求弱连通分量
★求强连通分量
★求割点
★求桥
9.图论:BFS遍历
广度优先搜索(宽度优先搜索)
求不带权的最短路
求图的直径
AOV问题(拓扑排序)
AOE问题
10.图论:二分图
验证二分图
匈牙利算法
★KM算法
★稳定婚姻系统
11.树
求树的最短链
二叉树的四种遍历
已知先序中序求后序
已知中序后序求先序
★已知先序后序求中序
★LCA问题的Tarjan离线算法
★Huffman编码
11.树
求树的最短链
二叉树的四种遍历
已知先序中序求后序
已知中序后序求先序
★已知先序后序求中序
★LCA问题的Tarjan离线算法
★Huffman编码
12.数据结构(一)
表和栈
Hash表与开散列
★分段Hash
并查集
堆
二叉查找树
13.数据结构(二)
★平衡二叉树
★树状数组
★线段树
★块状链表
14.排列与组合
生成所有排列
生成所有组合
生成下一个排列
生成下一个组合
15.动态规划(一)
0-1背包
完全背包
乘法问题
数塔问题
装箱问题
16.动态规划(二)
最长上升序列(LIS)
最长公共子串(LCM)
最小代价子母树
17.分治与递归
二分查找
归并排序
最近点对问题
求最大子序列和的O(nlogn)算法
Hanoi塔问题及其变种
棋盘覆盖问题
循环赛日程表问题
18.贪心
最优装载问题
部分背包问题
独立区间的选择
覆盖区间的选择
区间的最小点覆盖
点的最小区间覆盖
19.递推
Fibonacci数的若干应用
Catalan数的若干应用
拆分数
差分序列
20.其它
★网络流
★置换群
★KMP算法