【期末复习】例题讲解Dijkstra算法

news2024/9/20 14:51:13

使用场景

Dijkstra算法用于解决单源点最短路径问题,即给一个顶点作为源点,依次求它到图中其他n-1个顶点的最短距离。

例题讲解

Dijkstra算法将图中所有顶点分成两部分,第一部分是已知到源点最短距离的顶点Known(K),第二部分是不知道到源点最短距离的顶点Unknown(U)。初始化K中只有源点一个顶点,U中有n-1个顶点。如下图,我们求源点1终点7的最短路径。

根据上图,可以得到如下表:

K

K中顶点到源点的距离

U

U中顶点到源点的距离

1

0

2

无穷

3

无穷

4

无穷

5

无穷

6

无穷

7

无穷

1-1. 找到顶点1的邻接点2和3,然后更新它们到源点1的距离得到下表

K

K中顶点到源点的距离

U

U中顶点到源点的距离

1

0

2

2

3

5

4

无穷

5

无穷

6

无穷

7

无穷

1-2. 更新K,U中的顶点。发现U中2到源点的距离最小,把2加入K中得到下表

K

K中顶点到源点的距离

U

U中顶点到源点的距离

1

0

3

5

2

2

4

无穷

5

无穷

6

无穷

7

无穷

2-1. 找到2的邻接点4和5,更新它们到源点的距离得到下表

K

K中顶点到源点的距离

U

U中顶点到源点的距离

1

0

3

5

2

2

4

6+2=8

5

8+2=10

6

无穷

7

无穷

2-2. 更新K,U中的顶点。发现U中3到源点距离最小,把3加入K中得到下表

K

K中顶点到源点的距离

U

U中顶点到源点的距离

1

0

4

8

2

2

5

10

3

5

6

无穷

7

无穷

3-1. 找到3的邻接点4和6,更新它们到源点的距离得到下表

K

K中顶点到源点的距离

U

U中顶点到源点的距离

1

0

4

5+1=6

2

2

5

10

3

5

6

6+5=11

7

无穷

3-2. 更新K,U中的顶点。发现U中4到源点的距离最短,把4加入K中得到下表

K

K中顶点到源点的距离

U

U中顶点到源点的距离

1

0

5

10

2

2

6

11

3

5

7

无穷

4

6

4-1. 找到4的邻接点5和6,更新它们到源点的距离得到下表

K

K中顶点到源点的距离

U

U中顶点到源点的距离

1

0

5

2+6=8

2

2

6

1+6=7

3

5

7

无穷

4

6

4-2. 更新K,U中的顶点。发现6到源点的距离最短,把6加入K中加入得到下表

K

K中顶点到源点的距离

U

U中顶点到源点的距离

1

0

5

8

2

2

7

无穷

3

5

4

6

6

7

5-1. 找到6的邻接点7,更新7到源点的距离得到下表

K

K中顶点到源点的距离

U

U中顶点到源点的距离

1

0

5

8

2

2

7

7+6=13

3

5

4

6

6

7

5-2. 更新K,U中的顶点。K中5到源点的距离最小把5加入K中得到下表

K

K中顶点到源点的距离

U

U中顶点到源点的距离

1

0

7

13

2

2

3

5

4

6

6

7

5

8

6-1. 找到5的邻接点7,更新7到源点的距离得到下表

K

K中顶点到源点的距离

U

U中顶点到源点的距离

1

0

7

3+8=11

2

2

3

5

4

6

6

7

5

8

6-2. 更新K,U中的顶点,将顶点7加入K中完成计算得到下表

K

K中顶点到源点的距离

U

U中顶点到源点的距离

1

0

2

2

3

5

4

6

6

7

5

8

7

11

由此我们就得到源点1到各个顶点的最短路径。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

教你如何搭建人事OA-考勤管理系统,demo可分享

1、简介1.1、案例简介本文将介绍,如何搭建人事OA-考勤管理。1.2、应用场景可查看员工考勤的数据统计,可进行考勤签到、补签、请假、加班、调休等流程。2、设置方法2.1、表单搭建1)新建表单【考勤签到】,字段设置如下:名…

VS Code Spring 全新功能来了!

大家好,欢迎来到我们 2023 年的第一篇博客!我们想与您分享几个与 Spring 插件、代码编辑和性能相关的激动人心的更新,让我们开始吧! Spring 插件包的新入门演练 演练(Walkthrough) 是一种多步骤、向导式的体…

跨境进口税费计算

以前搞跨境进口的时候,需要计算商品税费。税费计算比较复杂,把信息整理了一下,分享给大家。 一、基础知识 1.1税费类型 BBC/BC:跨境电商进口综合税 关税*0 (消费税进口环节增值税)*70%CC:行邮税,税额低…

Vue3电商项目实战-商品详情模块1【01-商品详情-基础布局、02-商品详情-渲染面包屑、03-商品详情-图片预览组件、04-商品详情-图片放大镜】

文章目录01-商品详情-基础布局02-商品详情-渲染面包屑03-商品详情-图片预览组件04-商品详情-图片放大镜01-商品详情-基础布局 目的:完成商品详情基础布局,路由配置,搭好页面架子。 大致步骤: 准备组件结构容器提取商品推荐组件且…

十二月券商金工精选

✦研报目录✦ ✦简述✦ 按发布时间排序 华宝证券 主动暴露的得与失—从Barra框架到私募指增因子分析方法 发布日期:2022-12-01 关键词:股票、Barra、风险暴露、指数增强 主要内容:本文针对私募指数增强产品的策略流程,设计…

<JVM上篇:内存与垃圾回收篇>11 - 垃圾回收相关算法

对象存活判断 在堆里存放着几乎所有的 Java 对象实例,在 GC 执行垃圾回收之前,首先需要区分出内存中哪些是存活对象,哪些是已经死亡的对象。只有被标记为己经死亡的对象,GC 才会在执行垃圾回收时,释放掉其所占用的内存…

vue项目开发(vue2与vue3对比)

vue中使用typescrip 初与typescrip的约定情愫:最近项目要用到vue3,所以打算使用typescrip语法! 安装: npx tyarn add typescript vue/cli-plugin-typescript -D npx tsc --init修改 tsconfig.json: {"compilerOptions&quo…

LVS中的keepalived高可用

文章目录前言一、Keepalived简介二、keepalived工作原理三、配置文件四、实验1.某台Real Server down2.LVS本身down实验过程:五、代码详细演示整体过程调度器安装软件、设置测试keepalived对后端RS的健康检测backup服务主机设置前言 一、Keepalived简介 Keepalived是…

ubuntu18.4安装Redmine软件

1.github网站下载Redmine4.2.0的安装包,如下图所示: https://github.com/redmine/redmine/releases/tag/4.2.0 图1 github网站下载redmine4.2.0安装包2.拷贝Redmine4.2.0的安装包到ubuntu工作目录,并解压缩,如下所示:…

Springboot前后端分离国际化实现-chatgpt

前言 Springboot国际化可以帮助使用者在不同语言环境中构建应用程序,这样应用程序可以有效地适应不同语言文化背景下的用户需求。 此外,Springboot国际化也可以方便多语言应用程序重用和维护,从而减少了系统部署的时间成本和维护的费用。 要实…

医疗方案 | 星辰天合入选“2022智慧新医信优秀解决方案”

近日,由 HC3i数字医疗网主办的《数字化转型驱动下的医院高质量发展论坛》暨 2022 智慧新医信优秀解决方案发布仪式在线上召开。XSKY星辰天合的“智慧医疗软件定义数据基础设施”解决方案成功入选 2022 智慧新医信优秀解决方案,。此次论坛由 HC3i 数字医疗…

会利用信息差赚钱的人才是聪明人

毕业后找不到工作,穷到只剩下时间,大小做了20多份副业兼职,终于找到了可靠的渠道, 我是专科生,学历不好,专业拉胯。毕业后,我找了两三份工作。要么工资太低,只能交房租,…

javaFx实现鼠标穿透画布,同时操作画布和桌面,背景透明,类似ppt批注

一、功能需要由来和大致效果 今天,我们要用javaFx来实现一个鼠标穿透画布的功能,该需求来自于在我们的javaFx桌面应用中,需要实现一个悬浮的桌面侧边工具栏,在工具栏中有画笔绘制,批注的功能,能够实现在任何…

【NLP】一种联合关系抽取模型——TPLinker

背景 前文介绍了【NLP】一种基于联合方式的三元组抽取模型——CasRel.这个模型虽然实体和关系同时训练,但本质上来说还是分阶段的预测实体和关系,依然存在暴露偏差问题。下面介绍一个解决暴露偏差的模型:TPLinker,论文地址&#…

【OJ】A+B=X

📚Description: 数列S中有n个整数,判断S中是否存在两个数A、B,使之和等于X。 ⏳Input: 第一行为T,输入包括T组测试数据。 每组数据第一行包括两个数字n和X,第二行有n个整数,表示数列S,(1&l…

Linux-0.11 文件系统inode.c详解

Linux-0.11 文件系统inode.c详解 Linux-0.11中使用的文件系统为minix, inode.c中的函数和该文件系统强关联。 inode节点在文件系统中与文件相关联,一个文件的就由一个inode来管理,这个inode节点将记录文件的权限,大小&#xff0…

SpringCloud之Nacos

Nacos1. Nacos的概念2. Nacos的作用3. Nacos的下载与安装4. Nacos Client 服务端的搭建5. Nacos 的namespace 和 group6. 配置中心7. 注意点1. Nacos的概念 Nocos 是 SpringCloudAlibaba架构中最重要的组件Nacos 是一个更易于帮助构建云原生应用的动态服务发现、配置和服务挂你…

pytorch搭建手写数字识别LeNet-5网络,并用tensorRT部署

pytorch搭建手写数字识别LeNet-5网络,并用tensorRT部署前言1、pytorch 搭建LeNet-5,并转为ONNX格式1.1 LeNet-5网络介绍1.2 ONNX(Open Neural Network Exchange)介绍1.3 pytorch 搭建 LeNet5网络2、将onnx转为tensorRT2.1 tensorRT 介绍2.1 onnx 转为 te…

C++面向对象(下)

文章目录前言1.再谈构造函数1.初始化列表2.explicit关键字2. static成员1.概念3.友元1.概念2.友元函数3.友元类4. 内部类5.匿名对象6.编译器优化7.总结前言 本文是主要是将之前关于C面向对象中的一些没有归纳到的零星知识点进行补充,同时对C中的面向对象简单收个尾…

如何在ONLYOFFICE v7.3中使用VSTACK和HSTACK公式

大家好,今天来给大家讲解一下,怎样在ONLYOFFICE v7.3中使用VSTACK和HSTACK公式, 这两个新公式也是ONLYOFFICE7.3版本更新后新的计算公式,请大家详细阅读本文。 ONLYOFFICE ONLYOFFICE文档是一款免费开源在线办公软件&#xff0c…