1.排序查找选择算法
(1)。插入排序(insertion-sort)
(2)。分治法排序(合并排序,merge-sort)
(3)。二分查找(binary-search)
(4)。冒泡排序(bubble-sort)
(5)。堆排序(heap-sort)
(6)。快速排序(quick-sort)
(7)。计数排序(counting-sort)
(8)。基数排序(radix-sort)******
(9)。桶排序(bucket-sort)*******
(10)。同时找最小值和最大值
(11)。找出第N小的元素(线性时间求中位数)
(12)。最坏情况为线性时间找出第N小的元素****
2.数据结构
(1)。分支无限制的有根数的表示
(2)。三角矩阵,带状矩阵,稀疏矩阵(三元组,十字链表),广义表表示法 ****************
(3)。稀疏矩阵:转置算法,乘法算法****************
(4)。trie树*************
(5)。Hash表(散列表)
hash函数:除法散列(m值取值)乘法散列(m,A取值)全域散列
解决碰撞的方法:链表法,开放寻址法
开放寻址法探查:线性探查,二次探查,双重散列
完全散列
(6)。二叉查找树(binary search tree)
树的三种遍历
线索二叉树
(7)。红黑树
左旋,右旋,插入,删除
(8)。B树
(9)。二项树,斐波那契堆
(10)。并查集
链表表示法,有根树表示法
3.算法
(1)。动态规划
装配线调度问题,矩阵链乘法
动态规划的两个特征
最长公共子序列,
最优二叉查找树*****************
0-1背包问题
最长单调子序列 15.4-5
双调欧几里得旅行商问题 15-1
(2)。贪心算法
活动选择问题,
部分背包问题
哈夫曼编码
4.图算法
(1)。图的两种表示法,图的转置
(2)。广度优先搜索(breadth-first search, BFS),
BFS可以于用于求最短路径
(3)。深度优先搜索(depth-first search, DFS)
递归和非递归算法
拓扑排序:a.用DFS实现 b.用入度来实现
强连通分支
(4)。最小生成树:
Kruskal算法(克鲁斯卡尔)
Prim算法(普里姆)
(5)。单源最短路径
Bellman-Ford算法(贝尔曼-福德)
差分约束系统
Dijkstra算法(迪杰拉斯特拉):边要求为非负权
有向无回路图的源单最短路径
(6)。每对顶点间的最短路径
Floyd-Warshall算法(弗罗伊德算法)
有向图的传递闭包
稀疏图上的Johnson算法
KMP算法**********************
(1)。NP
欧几里得旅行商问题