算法分为如下几类:
- 排序算法:
- 冒泡排序
- 插入排序
- 选择排序
- 希尔排序
- 快速排序
- 归并排序
- 堆排序
- 查找算法:
- 顺序查找
- 二分查找
- 插值查找
- 斐波那契查找
- 哈希查找
- 字符串匹配算法:
- Brute-Force算法(暴力匹配)
- KMP算法
- BM算法
- 图算法:
- DFS(深度优先搜索)
- BFS(广度优先搜索)
- 最短路径算法(Dijkstra算法、Floyd算法)
- 最小生成树(Prim算法、Kruskal算法)
- 树算法:
- 二叉树遍历(前序遍历、中序遍历、后序遍历、层序遍历)
- 霍夫曼编码
- 平衡二叉树(AVL树、红黑树)
- B-树
- 动态规划算法:
- 最长公共子序列(LCS)
- 最短公共超序列(SCS)
- 最大子段和
- 背包问题
以上是考研中出现较多的算法分类,当然还有其他的一些算法,如图论算法中的拓扑排序、强连通分量等,不过这些算法出现的频率较低。不过需要注意的是,这些算法之间并非是完全独立的,有些算法可以应用到其他算法之中,所以需要全面掌握这些算法之间的联系和使用场景。