C语言算法专题精讲
📚 共计 30 章节
01
算法概述
算法定义 · 特性(有穷/确定/可行/输入/输出) · 时间复杂度 & 空间复杂度
基础
复杂度
02
线性表基础
顺序存储(数组) · 链式存储(单链表) · 增删改查操作
数组
链表
03
栈与队列
顺序栈/链栈 · 循环队列/链队列 · 实际应用场景
LIFO
FIFO
04
递归算法
递归三要素 · 阶乘/斐波那契/汉诺塔 · 递归与迭代对比
递归
分治
05
排序算法(上)
冒泡 · 选择 · 插入 · 希尔 · 复杂度分析
O(n²)
希尔
06
排序算法(下)
快速 · 归并 · 堆 · 计数排序 · 稳定性分析
分治
线性排序
07
查找算法
顺序/二分/插值/斐波那契查找 · 原理与实现
二分
分块
08
哈希表
哈希函数 · 开放地址/链地址 · C语言实现
散列
冲突
09
树与二叉树
树概念 · 二叉树性质 · 前/中/后/层序遍历
递归
遍历
10
二叉搜索树
BST定义 · 查找/插入/删除 · C语言实现 · 性能
BST
动态
11
平衡二叉树
AVL · 平衡因子 · LL/RR/LR/RL旋转 · 插入删除
AVL
旋转
12
堆与优先队列
最大/最小堆 · 插入删除 · 堆排序 · 优先队列
堆
优先级
13
图的基本概念
有向/无向 · 邻接矩阵/邻接表 · DFS/BFS
图
遍历
14
最小生成树
Prim · Kruskal · 并查集优化 · C语言实现
MST
贪心
15
最短路径
Dijkstra · Bellman-Ford · Floyd-Warshall
单源
多源
16
拓扑排序与关键路径
AOV网 · 拓扑排序 · AOE网 · 关键路径计算
有向图
调度
17
字符串匹配
朴素 · KMP(next数组) · BM · Sunday
模式匹配
KMP
18
贪心算法
活动选择 · 分数背包 · 哈夫曼编码
贪心
最优
19
分治算法
归并排序 · 最大子数组 · 最近点对
分治
递归
20
动态规划(上)
DP思想 · 最优子结构 · 斐波那契(DP) · 钢条切割
DP
重叠子问题
21
动态规划(下)
0-1背包 · LCS · LIS · 编辑距离
背包
序列
22
回溯算法
八皇后 · 0-1背包(回溯) · 全排列 · N皇后
回溯
剪枝
23
分支限界法
TSP · 0-1背包(分支限界) · 装载问题
BFS
剪枝
24
位运算算法
与/或/异或/取反/移位 · 奇偶判断/交换/绝对值 · 状态压缩DP
位运算
状态压缩
25
双指针与滑动窗口
快慢/左右指针 · 滑动窗口框架 · 最长无重复子串 · 最小覆盖子串
双指针
窗口
26
前缀和与差分
一维/二维前缀和 · 差分数组 · 区间修改与查询
前缀和
差分
27
并查集
路径压缩 · 按秩合并 · 连通分量 · Kruskal应用
DSU
合并
28
树状数组与线段树
树状数组(单点/区间) · 线段树(建/更/查) · 区间最值
BIT
线段树
29
高级数据结构
Trie树 · 后缀数组 · AC自动机 · 红黑树概念
字典树
AC
30
算法综合实战
LeetCode经典 · 面试高频 · 竞赛入门 · 刷题策略
实战
面试