我是靠谱客的博主 高大店员,最近开发中收集的这篇文章主要介绍数据结构和算法(十一)图的最短路径前言方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前言

     本章讨论图的最短路径问题

方法

1.概念

所谓图的最短路径,就是用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。日常生活中如高德地图、百度地图会有类似换乘少、路程短等导航推荐,就是基于图的最短路径。

2.最短路径类型

1)非加权图的最短路径

我们拿上个博客中的例子来看:

 如果求A出发到G的最短路径怎么求呢?那么按照段数进行区别,段数越少代表最短路径。

也许,你可以从上面的图中一眼就看出来最短路径,当然这只是一个十分简单的图,一旦复杂起来,就需要借助相应的算法。

该算法类似于树的层次遍历,需要借助队列来实现。

  • 首先将目标顶点A入队列。
  • 当队列不为空时,执行循环:
  •          顶点出队列,遍历该顶点的邻接表,更新它们距顶点的最短距离(无权图一段距离为1),更新它们的上一个结点。它们(该顶点的邻接点)入队列。
  • 当队列为空时,遍历完A的所有可达顶点。可以得到到所有顶点的最短路径。

具体的算法过程我已经在资源中给出。

2)加权图的最短路径

求下面这个加权图的最短路径

假设加权图的权代表结点间的距离,求v1到v8的最短路径。

要想解决该问题,我们需要使用狄克斯特拉算法(Dijkstra算法来求解!

具体的算法过程我已经在资源中给出。

 

最后

以上就是高大店员为你收集整理的数据结构和算法(十一)图的最短路径前言方法的全部内容,希望文章能够帮你解决数据结构和算法(十一)图的最短路径前言方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部