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)
  • 堆 / 优先队列相关算法
  • 单调栈 / 单调队列

敬请期待!

相关推荐
IronMurphy7 小时前
【算法四十三】279. 完全平方数
算法
墨染天姬7 小时前
【AI】Hermes的GEPA算法
人工智能·算法
papership7 小时前
【入门级-数据结构-3、特殊树:完全二叉树的数组表示法】
数据结构·算法·链表
smj2302_796826527 小时前
解决leetcode第3911题.移除子数组元素后第k小偶数
数据结构·python·算法·leetcode
九转成圣8 小时前
Java 性能优化实战:如何将海量扁平数据高效转化为类目字典树?
java·开发语言·json
Beginner x_u8 小时前
链表专题:JS 实现原理与高频算法题总结
javascript·算法·链表
SmartRadio8 小时前
ESP32-S3 双模式切换实现:兼顾手机_路由器连接与WiFi长距离通信
开发语言·网络·智能手机·esp32·长距离wifi
laowangpython8 小时前
Rust 入门:GitHub 热门内存安全编程语言
开发语言·其他·rust·github
我叫汪枫8 小时前
在后台管理系统中,如何递归和选择保留的思路来过滤菜单
开发语言·javascript·node.js·ecmascript
_.Switch8 小时前
东方财富股票数据JS逆向:secids字段和AES加密实战
开发语言·前端·javascript·网络·爬虫·python·ecmascript