欢迎来到disizhuoer的小blog

南山有杞,其叶葳蕤。朝露承之,晔晔如玑。日中则晞,零落成泥,华者易散,实者难欺。
北山有棘,其条縰縰。风过作响,谡谡如语。采之盈手,刺隐其肤,言者洵洵,心者殊殊。
中林有松,其干苍苍。冬雪压枝,不折其芒。春霆震谷,不陨其芳,贞者立世,矫者徬徨。
川上有蘋,其根沈沈。浮叶田田,蔽水成阴。拨叶视之,根腐于深,饰者驰骛,真者谦藏。
山有嘉卉,名曰卷施。朝向东隅,莫向西驰。匪风可移,匪雨可欺,诚者有守,妄者无归。
本本此世,只只此诗,蒙蒙此事,得得此失,惺惺此时,蹇蹇此势,熠熠此视,晃晃此逝。

算法路线

第一阶段:基础入门(搭建知识框架)
核心目标:掌握算法与数据结构的底层逻辑,建立「问题 - 解法」的基础映射思维。

  1. 基础数据结构
    线性结构:数组、链表(单向 / 双向 / 循环)、栈、队列(普通 / 循环 / 双端)
    哈希结构:哈希表(哈希函数、冲突解决策略)
    树形结构:二叉树(满二叉树 / 完全二叉树)、二叉搜索树(BST)
    图结构:图(无向图 / 有向图)、邻接矩阵、邻接表
  2. 基础算法思想
    暴力思想:枚举(穷举所有可能)、模拟(复现问题流程)
    核心思想:贪心(局部最优推全局最优)、分治(拆分问题 + 合并结果)、递归(自顶向下调用)、回溯(试错 + 回退)
    动态规划入门:初步理解「状态定义」与「子问题拆分」逻辑
  3. 基础算法
    排序算法:冒泡排序、选择排序、插入排序、归并排序、快速排序、堆排序
    查找算法:二分查找(普通二分、二分答案)
    图基础算法:深度优先搜索(DFS)、广度优先搜索(BFS)
  4. 复杂度分析
    时间复杂度:大 O 符号(最坏情况)、Ω 符号(最优情况)、θ 符号(平均情况)
    空间复杂度:额外空间计算、原地算法(O (1) 空间)
    复杂度场景:最坏情况、平均情况、最优情况的适用场景
    第二阶段:进阶深化(攻克复杂问题)
    核心目标:突破高难度问题,掌握「复杂场景下的算法选型与优化」能力。
  5. 高级数据结构
    (1)平衡树与多路树
    平衡树:AVL 树(严格平衡)、红黑树(近似平衡)、Treap 树(树堆)、Splay 树(伸展树)
    多路平衡树:B 树(磁盘存储)、B + 树(数据库索引)、B * 树(B + 树优化)
    (2)字符串专用结构
    前缀匹配:字典树(Trie,高效前缀查询)
    后缀相关:后缀数组(SA)、后缀自动机(SAM)、回文自动机(PAM)
    (3)区间查询与维护
    基础区间结构:线段树(含延迟标记,支持区间更新)、树状数组(Fenwick Tree,高效前缀和)
    进阶区间结构:主席树(持久化线段树,历史版本查询)、RMQ 算法(ST 表,静态区间最值)、块状数组(分块思想实现区间操作)
    (4)其他高频结构
    动态连通性:并查集(路径压缩 + 按秩合并优化)
    优先队列:堆(大根堆 / 小根堆)、优先队列(自定义优先级)
    概率型结构:布隆过滤器(海量数据判重)、Count-Min Sketch(频率估计)、HyperLogLog(基数估计)、布谷鸟哈希(冲突解决)
    特殊结构:笛卡尔树(堆 + 二叉搜索树特性)、线性基(异或问题)、环形缓冲区、Link-Cut Tree(动态树)
  6. 核心算法思想进阶
    (1)动态规划(DP)
    基础 DP 模型:0-1 背包、完全背包、最长公共子序列(LCS)、最长递增子序列(LIS)
    进阶 DP 模型:数位 DP(数字统计问题)、插头 DP(网格路径问题)、状态压缩 DP(二进制表示状态)、线性 DP、树状 DP(树上问题)、区间 DP(区间最优解)
    DP 优化技巧:斜率优化、凸壳优化、四边形不等式、记忆化搜索(递归 + 缓存)
    (2)分治与回溯优化
    分治进阶:二分答案(将「求答案」转化为「验证答案」)、归并排序应用(逆序对统计)
    回溯优化:最优性剪枝(提前终止无效分支)、可行性剪枝(排除非法路径)
    (3)其他思想
    离线算法:离线查询处理(如离线 LCA、离线区间问题)
    摊销分析:聚集分析、会计方法、势能方法(分析算法平均复杂度)
  7. 专项算法突破
    (1)字符串处理
    单模式串匹配:KMP 算法(前缀函数)、Z 算法(前缀匹配长度)、Manacher 算法(最长回文子串)
    多模式串匹配:Rabin-Karp 算法(哈希匹配)、AC 自动机(多模板匹配)
    字符串工具:字符串哈希(滚动哈希 / 双哈希防碰撞)、正则表达式
    (2)图论
    最短路径:Dijkstra 算法(正权图)、Bellman-Ford 算法(负权检测)、SPFA 算法(Bellman-Ford 优化)、Floyd-Warshall 算法(多源最短路)、Johnson 算法(全源最短路优化)
    最小生成树(MST):Prim 算法(稠密图)、Kruskal 算法(稀疏图)、次小生成树
    网络流:EK 算法(最大流基础)、Dinic 算法(最大流优化)、HLPP 算法(最高标号预流推进)、上下界网络流、费用流(最小费用最大流)
    连通性:Tarjan 算法(割点 / 割边 / 强连通分量 SCC)、Kosaraju 算法(强连通分量)、双连通分量(点双连通 / 边双连通)
    匹配问题:匈牙利算法(二分图最大匹配)、Hopcroft-Karp 算法(二分图匹配优化)、KM 算法(二分图带权匹配)、Edmonds 算法(一般图匹配)
    其他图问题:拓扑排序(Kahn 算法)、欧拉回路 / 路径(Hierholzer 算法)、哈密顿回路 / 路径、图的着色、LCA(最近公共祖先,倍增 / Tarjan 算法)
    (3)数论与数学
    素数相关:埃拉托斯特尼筛(埃筛)、线性筛(欧拉筛,高效筛素数 + 积性函数)、Miller-Rabin 素性测试(大素数判定)
    因子分解:试除法、Pollard's Rho 算法(大整数分解)
    模运算:快速幂(高效计算 a^b mod m)、模逆元(费马小定理 / 扩展欧几里得)、线性同余方程
    数论函数:欧拉函数(φ,互质计数)、莫比乌斯函数(μ)、莫比乌斯反演
    求和与定理:整除分块(数论分块,加速求和)、容斥原理、中国剩余定理(CRT,同余方程组)、Lucas 定理(大组合数取模)、二次剩余(Tonelli-Shanks 算法)
    线性代数:高斯消元(线性方程组求解)、矩阵快速幂(递推优化)
    组合数学:排列组合生成、Catalan 数(括号匹配 / 二叉树计数)、斐波那契数列(递推 / 矩阵优化)
    (4)计算几何
    基础操作:点 / 向量运算(点积 / 叉积)、线段相交判断、点在多边形内判断、多边形面积(Shoelace 公式)
    进阶问题:凸包(Graham 扫描法 / Andrew 算法)、最近点对(分治求解)、旋转卡壳(凸包极值问题)、半平面交、Voronoi 图、Delaunay 三角剖分、圆的相关计算(圆与圆 / 线位置关系)
    (5)其他高频算法
    位运算:位掩码(状态压缩)、异或运算(交换 / 判重)
    滑动窗口与双指针:滑动窗口(区间最值 / 和)、双指针(同向 / 反向,优化枚举)
    单调结构:单调栈(Next Greater Element 问题)、单调队列(滑动窗口最值)
    分块思想:莫队算法(离线区间查询优化)
    随机化算法:模拟退火(极值问题)、蒙特卡洛算法(概率性正确)、拉斯维加斯算法(确定性正确)
  8. 博弈论基础
    基础博弈:巴什博弈、NIM 游戏、威佐夫博弈、斐波那契博弈
    进阶博弈:SG 函数(Grundy 数,组合游戏胜负判定)、合作博弈
    第三阶段:工程实践与前沿拓展(落地与深化)
    核心目标:将算法与工程场景结合,探索前沿领域的算法应用。
  9. 工程化算法
    (1)分布式与并行
    分布式算法:一致性哈希(负载均衡)、Gossip 协议(分布式通信)、Paxos 协议(一致性算法)、Raft 协议(Paxos 简化)
    并行算法:Bitonic Sort(双调排序,并行排序)
    (2)缓存与存储
    缓存策略:LRU 缓存淘汰(最近最少使用)、LFU 缓存淘汰(最不经常使用)、FIFO 缓存
    数据压缩:哈夫曼编码(无损压缩)、LZ77 算法、LZ78 算法、DEFLATE 算法(LZ77 + 哈夫曼)
    (3)流式处理
    流式算法:滑动窗口中位数(动态数据流)、频率矩估计(海量数据流频率)
  10. 安全与加密
    对称加密:AES 算法(高级加密标准)
    非对称加密:RSA 算法(大素数加密)、ECC 算法(椭圆曲线加密)
    哈希函数:SHA 系列(SHA-256,消息摘要)
  11. 在线算法与交互题
    在线算法:页面置换算法(FIFO/OPT/LRU)、竞争分析(在线算法性能评估)
    交互题技巧:二分交互、自适应交互(根据反馈调整策略)
  12. 新兴与拓展方向
    量子算法基础:Grover 算法(量子搜索)、Shor 算法(大数分解)
    构造性问题:构造算法(设计满足条件的解)
    跨领域应用:数据库算法(索引相关)、AI 算法(基础梯度下降)、嵌入式轻量级算法(低资源场景)
posted @ 2025-08-25 18:40  songofsunshine  阅读(17)  评论(0)    收藏  举报