Files
Data-Structure/Algorithm
2025-09-01 19:49:15 +08:00
..
2025-09-01 19:49:15 +08:00
2025-08-31 10:21:06 +08:00
2025-08-28 21:17:28 +08:00
2025-09-01 19:49:15 +08:00
2025-09-01 19:49:15 +08:00
2025-08-29 08:42:50 +08:00
2025-09-01 19:49:15 +08:00
2025-08-30 21:59:50 +08:00
2025-09-01 19:49:15 +08:00
2025-08-28 21:17:28 +08:00
2025-08-28 21:17:28 +08:00

你问的是“把所有的算法和其概念都列举一下”——这个范围其实无限大 🤯,因为“算法”不仅包括基础数据结构和经典问题(排序、查找、图算法等),还包括数论、密码学、机器学习、人工智能、分布式、量子计算里的算法。严格说全列举是不可能的。

不过我可以给你一个系统的分类目录,把常见且重要的算法类型和它们的基本概念总结出来,这样你能有一个“地图”,以后可以往下逐步展开。


📚 常见算法分类与概念

(从基础到进阶)

1. 基础算法

  • 排序算法

    • 冒泡排序相邻元素交换O(n²)。
    • 插入排序逐个插入到有序区间O(n²)。
    • 选择排序每次选择最小元素放到前面O(n²)。
    • 归并排序分治合并O(n log n)。
    • 快速排序:分区 + 递归O(n log n),最坏 O(n²)。
    • 堆排序利用堆结构O(n log n)。
    • 计数/桶/基数排序非比较排序O(n+k)。
  • 查找算法

    • 顺序查找:挨个比对。
    • 二分查找有序数组O(log n)。
    • 哈希查找:哈希表平均 O(1)。
    • 插值查找、斐波那契查找:二分的改进。

2. 递归与分治

  • 概念:将问题分解为规模更小的同类问题,再合并解。
  • 典型归并排序、快速排序、二分查找、矩阵乘法Strassen、棋盘覆盖、FFT。

3. 动态规划DP

  • 概念:将大问题拆成重叠子问题,保存子问题解避免重复计算。

  • 典型:

    • 背包问题0-1、多重、完全
    • 最长公共子序列 LCS。
    • 最长上升子序列 LIS。
    • 矩阵链乘。
    • 状压 DP旅行商、集合覆盖
    • 树形 DP。

4. 贪心算法

  • 概念:每一步都做局部最优选择,期望得到全局最优解。

  • 典型:

    • 活动选择问题。
    • Huffman 编码。
    • Kruskal / Prim最小生成树
    • Dijkstra单源最短路径

5. 图论算法

  • 最短路径

    • Dijkstra非负权
    • Bellman-Ford可处理负权
    • Floyd-Warshall任意两点
    • A*(启发式搜索)。
  • 最小生成树

    • Kruskal。
    • Prim。
  • 最大流 / 最小割

    • Ford-Fulkerson。
    • Edmonds-Karp。
    • Dinic。
  • 匹配 / 覆盖

    • 匈牙利算法。
    • Hopcroft-Karp。

6. 数论与密码学算法

  • 欧几里得算法gcd
  • 扩展欧几里得ax+by=gcd
  • 快速幂。
  • 素数筛法(埃拉托斯特尼筛、线性筛)。
  • RSA 加密(模幂运算)。
  • 椭圆曲线加密。

7. 搜索算法

  • DFS深度优先搜索
  • BFS广度优先搜索
  • 回溯N 皇后、数独)。
  • 分支限界法。
  • 启发式搜索A*、IDA*)。

8. 字符串算法

  • KMP前缀函数
  • Rabin-Karp哈希匹配
  • Trie 树(字典树)。
  • 后缀数组 / 后缀自动机 / 后缀树。
  • AC 自动机(多模式匹配)。
  • Manacher回文子串

9. 几何算法

  • 凸包Graham 扫描、Andrew 算法)。
  • 线段相交判定。
  • 最近点对。
  • 扫描线算法。
  • 计算几何中的旋转卡壳。

10. 并行与分布式算法

  • MapReduce。
  • Paxos、Raft分布式一致性
  • 并行前缀和scan
  • 并行排序。

11. 机器学习与 AI 算法

  • 线性回归 / 逻辑回归。
  • 决策树 / 随机森林。
  • k-means 聚类。
  • 支持向量机。
  • 神经网络BP 算法、梯度下降)。
  • 强化学习Q-learning

12. 其他重要算法

  • 并查集Union-Find
  • 拓扑排序。
  • 位运算算法lowbit、快速加法
  • 蒙特卡洛 / 拉斯维加斯(随机化算法)。
  • Bloom Filter。
  • 哈希算法MD5, SHA

🔑 总结

  • 算法的世界很大,不同领域有成百上千种算法。
  • 学习顺序建议:排序 → 查找 → 分治/递归 → DP → 贪心 → 图论 → 高级专题(字符串/几何/数论/AI
  • 以后遇到具体领域(比如机器学习、密码学),再深入相关算法。

要不要我帮你整理一个 “学习路线图”(比如第一阶段学什么,第二阶段学什么),而不是一大堆罗列?这样更方便你系统掌握。