1、外排的实现
置换选择排序,K路归并(败者树或者堆实现),以及文件的切割。
2、B树、B+树的实现
B树、B+树到底实现来干什么?文件已经是操作系统在管理了,缓存对使用者是透明的,用这两种结构的实战意义是什么?或者说有什么实际问题可以解决?
FASTDB的源代码参考,sqlite的源代码参考,P树的定义及应用场景
3、huffman树的应用
最优前缀编码、最优归并树、poj 补篱笆问题
4、堆得应用
堆结构的实现,置换选择排序,STL partial_sort,海量数据TOP K问题
5、KMP应用
有限自动状态机的本质,前缀串数组,周期串,POJ 一大堆相关题目
确定有穷自动机DFA与不确定有穷自动机NFA,正则语言,正则表达式的实现,可计算性
6、并查集结构
二项堆,斐波那契堆,与堆得区别,优缺点各是什么。在图算法中的应用。
POJ上是否有应用
7、图
基本算法:BFS,DFS,TOPO排序,强连通子图求解
单源最短路径,最短路径
8、数论
9、计算几何
10、NP问题
11、离散数学
12、算法设计策略 | |||||||||||||
分治法:归并排序、逆序对的计算、大整数乘法、求最近点对、递归式的求解、主定理及证明 -- 什么情况下采用分治才是有效提高效率的! | |||||||||||||
分治法的定义,应用场景,诸多著名算法的推断来历 -- 由大划小,递归求解,此为分治。比如最小生成树,图的最短路径? |