l 快速排序
对于一个待排序序列,通过一趟排序将它分成两个子序列,其中一个序列内所有元素均小于另外一个序列中的任意一个元素。然后对两个子序列均进行上述的排序。知道最后各个子序列均完成排序。
l 深度优先搜索
是对树和图的一种遍历和搜索算法。每次都扩展新产生的状态。
以树为例,选定初始结点,按深度递增的方向遍历该树的某一分支,直至搜索到叶子结点,然后回溯至最近的一个仍其它未被遍历分支的父节点,则按之前的方法搜索该分支。递归完成整个搜索过程。
l 广度优先搜索
以层次递增的顺序进行,当前层所有节点遍历完,才能搜索下一层的结点
l Dijkstra 单源最短路径(贪心)
每次优先选取离出发点O距离最近的点,并认为该距离是O到该点的最短路径,然后再更改O点到其它未确定顶点的距离。
l Prim 最小生成树(贪心)
不断扩充点集合,直到所有的点已经在集合中,每次从所有一端在集合中、另一端不在集合的边内选一条最短的且不会构成环路的边,将该边作为生成树的一部分并且将顶点放入集合中。Prim算法每次从剩下的顶点中选择一个最优的顶点加入已有的顶点集合当中,显然这也是贪心法的思想
l Kruscal (贪心)
将所有的边按权值从小到大的顺序排列,从权值最小的边开始,按照“不构成回路”的依次添加新的边,扩充边集合。