-
1.排序算法:
-
• 冒泡排序(Bubble Sort)
-
• 选择排序(Selection Sort)
-
• 插入排序(Insertion Sort)
-
• 快速排序(QuickSort)
-
• 归并排序(Merge Sort)
-
• 堆排序(Heap Sort)
-
• 计数排序(Counting Sort)、桶排序(Bucket Sort)等
-
2. 查找算法:
-
• 线性搜索(Linear Search)
-
• 二分查找(Binary Search)
-
• 顺序查找(Sequential Search)
-
• 哈希表查找(Hash Table Lookup)
-
• 字典树(Trie)查找
-
3. 搜索算法:
-
• 深度优先搜索(Depth-First Search, DFS)
-
• 广度优先搜索(Breadth-First Search, BFS)
-
• Dijkstra算法(用于寻找单源最短路径)
-
• A*搜索算法(启发式搜索)
-
4. 图算法:
-
• 最小生成树算法(Prim算法、Kruskal算法)
-
• 最短路径算法(Dijkstra算法、Floyd-Warshall算法、Bellman-Ford算法)
-
• 拓扑排序(Topological Sorting)
-
• 强连通分量(Strongly Connected Components)
-
5. 分治算法:
-
• 分治法应用于许多问题,如归并排序、快速排序、大整数乘法、Strassen矩阵乘法等
-
6. 动态规划:
-
• 背包问题(Knapsack Problem)
-
• 最长公共子序列(Longest Common Subsequence, LCS)
-
• 最长递增子序列(Longest Increasing Subsequence, LIS)
-
• 最短路径问题(有时也用动态规划解决)
-
7. 贪心算法:
-
• 贪心选择性质在霍夫曼编码(Huffman Coding)、Prim算法生成最小生成树的部分有应用
-
8. 枚举算法:
-
• 在有限集合中穷举所有可能情况来解决问题,如密码破解、排列组合计数等问题
-
9. 迭代算法:
-
• 数值计算中的牛顿法、梯度下降法等用于求解方程或优化问题
-
10. 回溯算法:
-
• 解决约束满足问题,如八皇后问题、迷宫求解等