数据结构【DS】图的应用

图的连通性问题

最少边数

最多边数

无向图非连通

𝒎=𝟎

𝒎=𝒏−𝟐∗(𝒏−𝟏)/𝟐

无向图连通

𝒎=𝒏−𝟏

𝒎=𝒏∗(𝒏−𝟏)/𝟐

有向图非强连通

𝒎=𝟎

𝒎=𝒏−𝟐∗𝒏−𝟏+𝟏

有向图强连通

𝒎=𝒏

𝒎=𝒏∗(𝒏−𝟏)

最小生成树

Prim

  • 选点(point)
  • 时间复杂度:𝑶𝑽𝟐
  • 适合边稠密

Kruskal

  • 选边
  • 时间复杂度:𝑶𝑬𝒍𝒐𝒈𝟐𝑬
  • 适合边稀疏

回忆一下是如何通过这两个算法构造最小生成树的?

 最短路径问题

BFS

Dijkstra

Floyd

无权图

带权图

带负权值的图

带负权回路的图

时间复杂度

𝑂𝑉2|𝑂(𝑉+|𝐸|)

𝑂(|𝑉2|)

𝑂(|𝑉3|)

通常用于

无权图单源最短路径

带权图单源最短路径
也可以求带权图各个顶点间的最短路径
适合有回路带权图的最短路径

带权图各个顶点间的最短路径

回忆如何通过这三种算法求最短路径?

拓扑序列

  • 对于任一有向图,如果它的邻接矩阵为三角矩阵,则一定存在拓扑序列(可能不唯一),反之不一定成立。
  • 若图存在拓扑序列,却不一定能满足邻接矩阵中主对角线以下的元素均为0,但是可以通过适当地调整结点的编号,使其邻接矩阵能够满足主对角线以下的元素均为0。
  • 拓扑序列唯一,也不能唯一确定该图
  • 若一个有向图具有有序的拓扑序列,则它的邻解矩阵一定为:三角矩阵
  • 若基于邻接表,则拓扑排序时间复杂度为:𝑶(|𝑽|+|𝑬|)
  • BFS和DFS都可以用于实现拓扑排序
  • 顶点:事件
  • 边:活动

 关键路径

详细步骤做法:

节点

最早开始时间

正着找,相加,取大值

节点

最晚开始时间

反着找,相减,取小值

最早开始时间

从谁发出的最早开始时间

最晚开始时间

被指向的最晚开始时间 减去 权值

 

 

 

 

  • 如何延长工程的工期?
    • AOE图中,关键路径上活动的时间延长多少,整个工程的时间也就随之延长多少【增加任一关键活动的时间将会增加工程的工期】
  • 关键活动是什么?
    • 关键路径所有活动都是关键活动
  • 关键路径是什么?
    • 关键路径是源点到终点的最长路径
    • 求关键路径的快速方法:找起点到终点的最长路径
  • 如何缩短关键路径?
    • 只有缩短所有关键路径的长度时,整个图的关键路径才能有效缩短。
  • 能任意缩短关键路径吗?
    • 不能任意缩短,一旦缩短到一定程度,该关键活动就可能变成非关键活动。
  • 只有一条关键路径的时候,减少关键活动的时间会缩短工程的工期吗?
    • 会缩短工程的工期
  • 有多条关键路径的时候,减少关键活动的时间会缩短工程的工期吗?
    • 不一定会缩短工程的工期
  • 关键路径是唯一的吗?
    • 并不唯一。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/198969.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot使用MongoTemplate根据正则表达式查询日期数据

一、日期正则表达式测试 匹配HH:mm:ss正则表达式写法有很多列举两个 .(点)代表任意匹配 ^必须以xxx开头, 如^[a-z],必须以a-z的字母开头 : 精确匹配,必须是: ([0-1]?[0-9]|2[0-3]).([0-5][0-9]).([0-5][0-9]) ^([0-1]?[0-9]|2[0-3]).([0-5][0-9]).([0-5][0-9])$ ([0-1]?…

小程序游戏、App游戏与H5游戏:三种不同的游戏开发与体验方式

在当今数字化的时代,游戏开发者面临着多种选择,以满足不同用户群体的需求。小程序游戏、App游戏和H5游戏是三种流行的游戏开发和发布方式,它们各自具有独特的特点和适用场景。 小程序游戏:轻巧便捷的社交体验 小程序游戏是近年来…

从硬件到软件:揭秘磁盘结构和文件系统组织

📟作者主页:慢热的陕西人 🌴专栏链接:Linux 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 本博客主要内容讲解了从磁盘的硬件结构,再到操作系统内部是…

C语言之深入指针及qsort函数(五)(详解介绍)

C语言之深入指针 在这篇博客看不懂的可以看看这篇C语言之深入指针(四)在上篇博客中介绍了: 函数指针变量函数指针数组简易计算器的实现\ 文章目录 C语言之深入指针1 回调函数2 qsort函数的使用2.1 使用冒泡排序排序整型数组2.2 使用qsort函数…

使用Sqoop命令从Oracle同步数据到Hive,修复数据乱码 %0A的问题

一、创建一张Hive测试表 create table test_oracle_hive(id_code string,phone_code string,status string,create_time string ) partitioned by(partition_date string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ,; 创建分区字段partition_date&#xff0c…

mysqlbinlog使用记录

首先要确认mysql启用了binlog功能。一般默认启用。 mysql> select log_bin; ----------- | log_bin | ----------- | 1 | ----------- 然后确认binlog目录 mysql> select log_bin_basename; ---------------------------- | log_bin_basename | -----…

xlua源码分析(三)C#访问lua的映射

xlua源码分析(三)C#访问lua的映射 上一节我们主要分析了lua call C#的无wrap实现。同时我们在第一节里提到过,C#使用LuaTable类持有lua层的table,以及使用Action委托持有lua层的function。而在xlua的官方文档中,推荐使…

<b><strong>,<i><em>标签的区别

1. b标签和strong标签 b标签:仅仅是UI层面的加粗样式,并不具备HTML语义 strong标签:不仅是在UI层面的加粗样式,具备HTML语义,表示强调 2. i标签和em标签 i 标签:仅仅是UI层面的斜体样式,并不…

Django学习日志08

如何开启事务 事务的目的:为了保证多个SQL语句执行成功,执行失败,前后保持一致,保证数据安全 ACID属性: A:原子性(Atomicity):指事务是原子的,对事务中的操…

系统设计之通讯协议

一、通讯协议 架构风格定义了应用程序编程接口 (API) 的不同组件如何相互交互。因此,它们通过提供设计和构建 API 的标准方法来确保效率、可靠性以及与其他系统集成的便捷性。以下是最常用的样式: 1. SOAP 成熟、全面、基于XML 最适合于企业应用 可扩展…

STM32获取最大堆栈空间

参考 stackflow相关讨论 原理 通过参考链接,可知探测Stack的最大深度是先在stack中填充不常用的特定值,然后实时检测这些值哪些发生了变化,变化的表示使用到了这个空间,如果程序完全遍历后,有些值还是没变&#xff…

网络运维与网络安全 学习笔记2023.11.19

网络运维与网络安全 学习笔记 第二十天 今日目标 STP工作原理、STP高级配置、MSTP工作原理 MSTP配置案例、MSTP负载均衡 STP工作原理 单点故障 PC之间的互通链路仅仅存在1个 任何一个设备或链路出现问题,PC之间都会无法通信 解决方案 增加冗余/备份设备 增加冗…

9 HDFS架构剖析

问题 100台服务器,存储空间单个200GB 20T 5T文件如何存储? 128MB一块 128MB81GB 1288*10241TB 5T数据分成的128MB的块数 8192 * 5 客户端(client)代表用户通过与namenode和datanode交互来访问整个文件系统。 HDFS集群有两类节点: 一个na…

成为电车销量的“中坚力量”,微小型车不能只有“低价”?

日常交通中,越来越多的汽车开始“绿牌出行”,市场的最新销量也不断验证着新能源车抢占更多市场的事实。 11月初,国内多家车企公布10月销量数据,其中新能源汽车销量增长仍然亮眼。根据中国工业和信息化部数据,我国汽车…

Nessus扫描结果出现在TE.IO或者ES容器结果查看问题解决方案

Nessus扫描结果出现在TE.IO或者ES容器结果查看问题解决方案 也是昨天晚上折腾了一个晚上到凌晨四点多,实在没有头绪,在论坛,贴吧,各种求助查贴,没有什么人解决.后面请教了一个安全圈的大佬朋友给解决了. 我的问题是在kali上的,所以只写了kali 的解决方案: 修改插件: vim /opt/…

Hadoop-- hdfs

1、HDFS中的三个进程:NameNode(NN)、DataNode(DN)、SecondNameNode(SNN) 2、NameNode(NN) 1、作用: 1、接收客户端的一个读、写的服务,在namenode上存储了数据文件和datanode的映射的关系。 …

【Q1—45min】

1.epoll除了边沿触发还有什么?与select区别. epoll 是Linux平台下的一种特有的多路复用IO实现方式,与传统的 select 相比,epoll 在性能上有很大的提升。 epoll是一种当文件描述符的内核缓冲区非空的时候,发出可读信号进行通知&…

划片机新手教程:从准备工作到注意事项全解析!

随着科技的飞速发展,划片机已成为半导体行业不可或缺的一部分。对于新手来说,如何正确操作划片机显得尤为重要。以下是新手操作划片机的步骤和建议。 一、准备工作 在开始操作划片机之前,首先需要准备好以下工具和材料: 1. 划片机…

Java(三)(static,代码块,单例设计模式,继承)

目录 static 有无static修饰的成员变量 有无static修饰的成员方法 static的注意事项 代码块 静态代码块 实例代码块 单例设计模式 饿汉式单例写法 懒汉式单例写法 继承 基本概念 注意事项 权限修饰符 单继承 object 方法重写 子类方法中访问其他成员(成员变量…

Flume学习笔记(3)—— Flume 自定义组件

前置知识: Flume学习笔记(1)—— Flume入门-CSDN博客 Flume学习笔记(2)—— Flume进阶-CSDN博客 Flume 自定义组件 自定义 Interceptor 需求分析:使用 Flume 采集服务器本地日志,需要按照日志…