数据结构基础¶
浙大课程笔记和自学笔记
教师:陈超超
参考(其实感觉就是照抄,毕竟教学的ppt都是统一的):xg & Q 的笔记
尚未完工
课好多,我相似
课程内容大纲
- 第一节课介绍分数构成、作业形式等重要内容!
- 复杂度分析
- 大 O、大 Ω、大 θ、小 o
- 栈和队列
- 中缀表达式转后缀表达式
- 中缀表达式转前缀表达式
- 表达式树
- 树
- 前、中、后序遍历
- threaded binary tree 线索二叉树
- 完全二叉树、满二叉树
- 二叉搜索树
- 查找、插入
- 删除根节点
- 支持删除指定节点(带 lazy tag 后的查找和删除)
- 堆
- 线性建堆及其复杂度证明
- push & pop
- d-heap(满足堆性质的 d 叉树):
- push & pop 复杂度
- 父亲编号、最大的儿子编号、最小的儿子编号
- 并查集
- union-by-size 及其复杂度证明
- union-by-depth 及其复杂度证明
- 路径压缩
- 图
- 最短路算法
- Floyd
- Dijkstra
- 堆优化
- 可以处理负权边吗?
- Bellman-Ford & SPFA
- 拓扑排序
- 其他图论算法
- 最小生成树
- Kruskal
- Prim
- 最大流
- 最大流最小割定理,平面图最大流的对偶图方法,及其局限性(课程不涉及,但可以加快手算最大流的速度)
- 增广路算法:
- 什么是反向边?
- Dinic & 当前弧优化
- 最小生成树
- DFS 的应用:
- 欧拉路径(回路)和哈密尔顿路径
- 无向图的双连通分量
- 定义(一个关节点可以出现在多个双连通分量中吗?)
- tarjan 算法
- 有向图的强联通分量
- tarjan 算法
- 排序:
- 插入排序
- 希尔排序
- 堆排序
- 快速排序
- 归并排序
- table sort
- bucket sort(桶排序) & radix sort(基数排序)
- 其他
- 稳定的排序
- 基于交换的排序的复杂度下界证明
- Hash
- 哈希函数:自变量是整数的情况,自变量是字符串的情况
- 开放寻址法
- linear probing 循环找下一个位置直到找到空位
- quadratic probing: 往后找 1, 2, 4, ... 个位置
- double hashing:
f(i)=i*hash2(x)
探测的步长与 key 值有关 - rehashing
- seperate chaining: 对相同哈希值用链表存储
- 删除(tag)
最后更新:
2024年10月2日 14:45:20
创建日期: 2024年3月9日 08:53:42
创建日期: 2024年3月9日 08:53:42