码迷,mamicode.com
首页 > 其他好文 > 详细

最短路径问题与广度优先搜索

时间:2019-08-19 00:08:06      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:实现   顺序   使用   入队   队列   queue   最短路径问题   广度   广度优先   

解决最短路径问题的算法被称为广度优先(breadth-first search,BFS)搜索。

广度优先搜索是一种用于图的查找算法,可解决两类问题:

从节点A出发,有前往节点B的路径吗?

从节点A出发,前往节点B的哪条路径最短?

最短路径问题的解决步骤:

1.使用图建立问题模型;

2.使用广度优先搜索解决问题。

广度优先搜素算法从邻居节点及邻近节点的邻居节点中搜索,直到搜索到目标。

首先搜索一度 关系,再搜索二度关系 ,然后三度关系,......

因此,广度优先搜索不仅查到从A到B的路径,而且找到的是最短的路径。

只有按添加顺序查找时,才能实现这样的目的;可以使用队列(queue)来实现。

队列工作原理:先进先出(First In First Out,FIFO)。

队列操作:入队,出队。

图的实现:

图由一系列的节点和边组成;每个节点都与邻近节点相连,可以使用散列表来实现图。

散列表是无序的,添加键-值对的顺序是无关的。

 

最短路径问题与广度优先搜索

标签:实现   顺序   使用   入队   队列   queue   最短路径问题   广度   广度优先   

原文地址:https://www.cnblogs.com/songyuejie/p/11374406.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!