c++ 算法

呢啥,我将开始一个新的系列,c++ 算法系列,包括以下的所有算法,有些复杂的会分成2-3篇。

1. 排序算法

  • 冒泡排序(Bubble Sort)
  • 选择排序(Selection Sort)
  • 插入排序(Insertion Sort)
  • 归并排序(Merge Sort)
  • 快速排序(Quick Sort)
  • 堆排序(Heap Sort)
  • 计数排序(Counting Sort)
  • 基数排序(Radix Sort)
  • 桶排序(Bucket Sort)
  • Intro 排序(C++ std::sort 内部使用)

2. 搜索算法

  • 线性搜索(Linear Search)
  • 二分搜索(Binary Search)
  • 三分搜索(Ternary Search)(用于单峰函数)
  • 指数搜索(Exponential Search)
  • 跳跃搜索(Jump Search)
  • 插值搜索(Interpolation Search)
  • 图的 DFS / BFS 搜索

3. 图算法

  • 深度优先搜索(DFS)
  • 广度优先搜索(BFS)
  • Dijkstra 最短路(加权图)
  • Bellman-Ford 最短路(允许负权)
  • Floyd-Warshall 全源最短路
  • Prim / Kruskal 最小生成树
  • 拓扑排序(Topological Sort)
  • 并查集 / Disjoint Set(连通分量)
  • A 搜索、SPFA、Tarjan 强连通分量*
  • 二分图匹配 / 最大流 / 最小割

4. 动态规划(DP)

  • 背包问题(0/1、完全、分数)
  • 最长公共子序列(LCS)/最长公共子串
  • 最长递增子序列(LIS)
  • 矩阵链乘法
  • 树形 DP / 图 DP
  • 找零钱问题、编辑距离、子集和

5. 贪心算法

  • 活动选择问题
  • 哈夫曼编码(Huffman Coding)
  • 分数背包问题(Fractional Knapsack)
  • 作业调度(Job Scheduling)

6. 分治算法

  • 归并排序、快速排序
  • 二分搜索
  • 最近点对问题
  • Strassen 矩阵乘法

7. 回溯 / 递归

  • N 皇后问题
  • 数独求解器(Sudoku Solver)
  • 全排列 / 组合生成
  • 子集生成

8. 数论 / 数学算法

  • 埃拉托色尼筛法(Sieve of Eratosthenes)
  • 最大公约数 / 最小公倍数(GCD / LCM,欧几里得算法)
  • 快速幂 / 模幂
  • 费马小定理、剩余定理(CRT)
  • 因数分解、质数测试
  • 扩展欧几里得算法
  • 快速傅里叶变换(FFT)

9. 字符串算法

  • KMP(Knuth-Morris-Pratt)
  • Rabin-Karp 算法
  • Z 算法
  • 字典树(Trie)、后缀树 / 后缀数组
  • Manacher 算法(求最长回文子串)

10. 几何算法

  • 凸包(Graham Scan / Jarvis March)
  • 直线相交 / 点在多边形内判断
  • 最近点对问题
  • 多边形面积 / 向量叉积

11. 其他常用技巧 / 数据结构配套算法

  • 双指针 / 滑动窗口
  • 前缀和 / 差分数组
  • 线段树 / 树状数组(Fenwick Tree / BIT)
  • 稀疏表(Sparse Table)
  • 堆 / 优先队列相关算法
  • 单调栈 / 单调队列

敬请期待!

相关推荐
hh随便起个名3 小时前
力扣二叉树的三种遍历
javascript·数据结构·算法·leetcode
橘子真甜~3 小时前
C/C++ Linux网络编程15 - 网络层IP协议
linux·网络·c++·网络协议·tcp/ip·计算机网络·网络层
小浣熊熊熊熊熊熊熊丶3 小时前
《Effective Java》第25条:限制源文件为单个顶级类
java·开发语言·effective java
啃火龙果的兔子3 小时前
JDK 安装配置
java·开发语言
星哥说事3 小时前
应用程序监控:Java 与 Web 应用的实践
java·开发语言
等....4 小时前
Miniconda使用
开发语言·python
zfj3214 小时前
go为什么设计成源码依赖,而不是二进制依赖
开发语言·后端·golang
醇氧4 小时前
org.jetbrains.annotations的@Nullable 学习
java·开发语言·学习·intellij-idea
Java&Develop4 小时前
Aes加密 GCM java
java·开发语言·python
weixin_462446234 小时前
使用 Go 实现 SSE 流式推送 + 打字机效果(模拟 Coze Chat)
开发语言·后端·golang