CSNotesCSNotes
TODO
LeetCode
数据结构
计算机组成原理
操作系统
计算机网络
数据库
Java
SSM
React
实用工具
GitHub
TODO
LeetCode
数据结构
计算机组成原理
操作系统
计算机网络
数据库
Java
SSM
React
实用工具
GitHub
  • 第一章 绪论

    • 1.1 数据结构的基本概念
  • 第二章 线性表

    • 2.1 线性表的定义和基本操作
    • 2.2 线性表的顺序表示
    • 2.3 线性表的链式表示
  • 第三章 栈、队列和数组

    • 3.1 栈
    • 3.2 队列
    • 3.3 栈和队列的应用
    • 3.4 数组和特殊矩阵
  • 第四章 串

    • 4.1 串的定义和实现
    • 4.2 串的模式匹配
  • 第五章 树与二叉树

    • 5.1 树的基本概念
    • 5.2 二叉树的概念
    • 5.3 二叉树的遍历和线索二叉树
    • 5.4 树、森林
    • 5.5 树和二叉树的应用
  • 第六章 图

    • 6.1 图的基本概念
    • 6.2 图的存储及基本操作
    • 6.3 图的遍历
    • 6.4 图的应用
  • 第七章 查找

    • 7.1 查找的基本概念
    • 7.2 顺序查找和折半查找
    • 7.3 树型查找
    • 7.4 B 树和 B+ 树
    • 7.5 散列表 (哈希表)
  • 第八章 排序

    • 8.1 排序的基本概念
    • 8.2 插入排序
    • 8.3 交换排序
    • 8.4 选择排序
    • 8.5 归并排序和基数排序
    • 8.6 外部排序
  • 第九章 贪心算法

    • 9.1 贪心算法
  • 第十章 动态规划

    • 10.1 动态规划

6.4 图的应用

6.4.1 最小生成树

1.Prim 算法

每次将代价最小的新顶点纳入生成树,直到所有顶点都纳入为止。

时间复杂度 $O(v^2)$

2.Kruskal 算法

每次选择一条权值最小的边连通,直到所有结点连通。

时间复杂度 $O(|E|log|E|)$

6.4.2 最短路径

Dijkstra 算法求单源最短路径

迭代,每次求出一个最短路径

不适用于负权值带权图

求源点 a 到其他各顶点的最短路径?

bcdef
25∞∞∞
235∞∞
23564
23564
23564
23564

Floyd 算法求各顶点之间的最短路径问题

允许 1 个结点中转

允许 2 个结点中转

。。

允许所有结点中转

6.4.3 有向无环图描述表达式

DAG 图:有向无环图

6.4.4 拓扑排序

AOV 网:DAG 图表示工程,顶点表示活动。

6.4.5 关键路径

从源点到汇点的所有路径当中,具有最大路径长度的路径称为关键路径。

AOE 网:边表示活动

事件的最早发生时间 ve(k)

从源点 $v_{1}$ 到顶点 $v_{k}$ 的最长路径长度。

万事具备,只欠东风

$ve(源点)=0$

$ve(k)=Max{ve(j)+Weight(v_{j},v_{k})}$

事件的最迟发生时间 vl(k)

结束时间 - 所需时间=最晚开始时间

$vl(汇点)=ve(汇点)$

$vl(k)=Min{vl(j)-Weight(v_{k},v_{j})}$

活动 $a_{i}$ 的最早开始时间 e(i)

$e(i)=ve(i)$

活动 $a_{i}$ 的最迟开始时间 l(i)

$l(i)=vl(i)-Weight(v_{k},v_{j})$

活动 $a_{i}$ 的时间差额 d(i)=l(i)-e(i)

在不增加整个工程所需总时间的情况下,活动 $a_{i}$ 可以拖延的时间。

V1V2V3V4V5V6
ve(i)032668
vl(i)042678
a1a2a3a4a5a6a7a8
e(i)00332266
l(i)10442567
l(i)-e(i)10110301
编辑此页
上次更新:
Prev
6.3 图的遍历