最短路径问题与广度优先搜索
Posted songyuejie
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最短路径问题与广度优先搜索相关的知识,希望对你有一定的参考价值。
解决最短路径问题的算法被称为广度优先(breadth-first search,BFS)搜索。
广度优先搜索是一种用于图的查找算法,可解决两类问题:
从节点A出发,有前往节点B的路径吗?
从节点A出发,前往节点B的哪条路径最短?
最短路径问题的解决步骤:
1.使用图建立问题模型;
2.使用广度优先搜索解决问题。
广度优先搜素算法从邻居节点及邻近节点的邻居节点中搜索,直到搜索到目标。
首先搜索一度 关系,再搜索二度关系 ,然后三度关系,......
因此,广度优先搜索不仅查到从A到B的路径,而且找到的是最短的路径。
只有按添加顺序查找时,才能实现这样的目的;可以使用队列(queue)来实现。
队列工作原理:先进先出(First In First Out,FIFO)。
队列操作:入队,出队。
图的实现:
图由一系列的节点和边组成;每个节点都与邻近节点相连,可以使用散列表来实现图。
散列表是无序的,添加键-值对的顺序是无关的。
以上是关于最短路径问题与广度优先搜索的主要内容,如果未能解决你的问题,请参考以下文章