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

敬请期待!

相关推荐
为何创造硅基生物14 小时前
C语言 结构体内存对齐规则(通俗易懂版)
c语言·开发语言
吃好睡好便好14 小时前
在Matlab中绘制横直方图
开发语言·学习·算法·matlab
星寂樱易李14 小时前
iperf3 + Python-- 网络带宽、网速、网络稳定性
开发语言·网络·python
仰泳之鹅15 小时前
【C语言】自定义数据类型2——联合体与枚举
c语言·开发语言·算法
之歆15 小时前
DAY_12JavaScript DOM 完全指南(二):实战与性能篇
开发语言·前端·javascript·ecmascript
于小猿Sup16 小时前
VMware在Ubuntu22.04驱动Livox Mid360s
linux·c++·嵌入式硬件·自动驾驶
cen__y16 小时前
Linux12(Git01)
linux·运维·服务器·c语言·开发语言·git
AI人工智能+电脑小能手16 小时前
【大白话说Java面试题 第65题】【JVM篇】第25题:谈谈对 OOM 的认识
java·开发语言·jvm
社交怪人17 小时前
【算平均分】信息学奥赛一本通C语言解法(题号2071)
c语言·开发语言
x_yeyue17 小时前
三角形数
笔记·算法·数论·组合数学