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

敬请期待!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值