当前位置: 首页 > news >正文

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

使用场景

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.lryc.cn/news/14474.html

相关文章:

  • Pytorch 基础之张量索引
  • JVM系统优化实践(1):JVM概览
  • 优秀!19年后,它再次成为TIOBE年度编程语言
  • 剑指 Offer 26. 树的子结构
  • 他是00年的,我们卷不过他...
  • C#开发的OpenRA的OpenGL创建纹理流程
  • 3D目标检测(一)—— 基于Point-Based方法的PointNet系列
  • 《设计模式》策略模式
  • 【离散数学】1. 数理逻辑
  • Java8新特性学习
  • SPARK outputDeterministicLevel的作用--任务全部重试或者部分重试
  • 图数据库中的 OLTP 与 OLAP 融合实践
  • Shader Graph简介
  • kubectl
  • 实验室设计SICOLAB第三方检测中心实验室设计
  • GPS经纬度转距离
  • 7-周赛333总结
  • 电子招标采购系统源码—互联网+招标采购
  • SQL注入和XSS攻击
  • js Map的使用
  • 企业应该怎么管理香港服务器?
  • 软件设计(十四)-UML建模(上)
  • 本地主机搭建服务器后如何让外网访问?快解析内网端口映射
  • Flink-Table API 和 SQL(基本API、流处理的表、时间属性和窗口、聚合查询、联结查询、函数、SQL客户端、连接到外部系统)
  • C++入门:数据抽象
  • WRF进阶:使用IO选项控制WRF变量输出/WRF指定变量输出添加/删除
  • 一文读懂功率放大器(功率放大器的特性是什么意思)
  • 微信小程序阻止页面返回(包滑动、自动返回键)
  • 视频直播美颜sdk的发展史
  • 【Mysql】存储过程