数据结构与算法 第四章 图

本文深入探讨图的理论,包括连通图、强连通图、生成树等基本概念,详细阐述图的邻接矩阵和邻接表两种存储结构,并分析其时间复杂度和空间需求。接着,介绍了图的深度优先搜索(DFS)和广度优先搜索(BFS),以及它们在寻找最小生成树和最短路径问题中的应用,如Prim、Kruskal、Dijkstra和Floyd算法。
摘要由CSDN通过智能技术生成


重点

基本概念- 连通图、生成树

图的存储
①邻接矩阵
②邻接表
在这里插入图片描述

图的遍历 各自的时间复杂度分析、领接矩阵与领接表是否一样

  • DFS
  • BFS

应用

  • 最小生成树
  • 最短路径(单目标、单顶点之间、所有顶点之间)

学习目标

  • 图结构是一种非线性结构,反映了数据对象之间的任意关系,在计算机科学、数学和工程中有着非常广泛的应用。
  • 了解图的定义及相关的术语,掌握图的逻辑结构及其特点
  • 了解图的存储方法,重点掌握图的邻接矩阵和邻接表存储结构;
  • 掌握图的遍历方法,重点掌握图的遍历算法的实现
  • 了解图的应用,重点掌握最小生成树、最短路径基本思想、算法原理和实现过程

1 图的基本概念

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

连通图与连通分量

在这里插入图片描述
在这里插入图片描述

强连通图与强连通分量

在这里插入图片描述

生成树

在这里插入图片描述

2 图的存储结构

2.1 领接矩阵

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 领接表

空间需求:O(n+2e)
在这里插入图片描述
空间需求:O(n+e)
在这里插入图片描述
空间需求:O(n+e)
在这里插入图片描述
存储结构
在这里插入图片描述
创建的时间复杂度:O(n+2e)

在这里插入图片描述
图的存储结构的比较——邻接矩阵和邻接表
在这里插入图片描述

其他

没讲

十字链表
邻接多重表
边集数组

3 图的遍历

在这里插入图片描述

DFS(深度优先搜索)

在这里插入图片描述
DFS可以用栈实现
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
算法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

时间复杂度分析
在这里插入图片描述
空间复杂度分析
在这里插入图片描述

BFS(广度度优先搜索)

原理
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
算法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

时间复杂度分析
在这里插入图片描述
空间复杂度分析
在这里插入图片描述

4 最小生成树算法

在这里插入图片描述
在这里插入图片描述

Prim

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Kruskal

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5 最短路径算法

在这里插入图片描述

Dijkstra(单源最短路径问题)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

迪杰斯特拉算法与Prim算法的相似之处
思想相似:都是使用贪婪和线性规划,每一步都是选择权值/花费最小的边。
贪婪:一个局部最有解也是全局最优解;
线性规划:主问题包含n个子问题,而且其中有重叠的子问题。

Dijkstra算法通过线性规划缓存了最优子路径的解,每一步也通过贪婪算法来选择最小的边。
Prim算法通过贪婪来选择最小的边,而Prim的每个子树都是最小生成树说明满足线性规划的两个条件。

Floyd(任意两个顶点之间的最短路径问题)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


传送门

上一章:数据结构与算法 第三章 树
下一章:数据结构与算法 第五章 查找

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值