美文网首页
广度优先搜索

广度优先搜索

作者: 张义飞 | 来源:发表于2018-07-18 08:16 被阅读0次

一种用来解决最短路径的算法。这个最短不是时间或者距离的最短而是边最少。欢聚话说就是做地铁的时候换乘最少。

图简介

图有节点和边组成,一个节点可能有很多节点与之相连,它们成为邻居。

查找最短路径

我们现在加入你想找个朋友帮忙代购一台电脑,于是你就在朋友圈里寻找,然后求助你的朋友让他们在各自的朋友圈帮你查找。于是知道找到为你代购的人。你的朋友就是一维关系,你朋友的朋友属于二维关系,等等。当然离你越近的说明路径就最短,关系就最近,越能帮你代购东西。

图.jpg

设计思路

我们先把自身的一维关系列出来,这里是bill的一维关系是jack ,robin, calm,然后分别找出他们三个的一维关系也就是bill的二维关系。

代码实现

class Friend:
    def __init__(self, name, canBuy):
        self.name = name
        self.canBuy = canBuy



robin = Friend('robin', True)
jack = Friend('jack', False)
calm = Friend('calm', False)
jessica = Friend('jessica', True)
rose = Friend('rose', False)
calvin = Friend('calvin', True)



graph = {}

graph['bill'] = [robin, jack, calm]
graph['robin'] = [calvin]
graph['jack'] = []
graph['calm'] = [jessica]
graph['jessica'] = []
graph['rose'] = []
graph['calvin'] = []

def searchName(name):
    searchQue = graph[name]
    searched = []

    while searchQue:
        person = searchQue.pop(0)
        if person not in searched:
            if person.canBuy:
                return person
            else:
                name = person.name
                searchQue += graph[name]
                searched.append(person)

print searchName('bill').name

特点

  • 广度优先搜索是否有从A-B的路径,有的话是找出最短路径
  • 需要按加入顺序检查搜索列表中的人,否则找到的不是最短路径
  • 对于检查过的节点不要在去检查,否则会造成循环。

相关文章

  • 搜索

    一、深度优先搜索 图深度优先遍历、深度优先搜索算法求有权图两点最短路径 二、广度优先搜索 图广度优先遍历、广度优先...

  • 图的遍历

    结构 深度优先搜索 广度优先搜索

  • 深度优先搜索和广度优先搜索

    一、深度优先搜索 二、广度优先搜索

  • 深度优先广度优先

    深度优先搜索 广度优先搜索(队列实现)

  • LeetCode广度、深度优先搜索

    广度优先搜索 广度优先搜索(也称宽度优先搜索,缩写BFS即即Breadth First Search)是连通图的一...

  • 广度优先搜索算法

    上一篇简书小编分享了“深度优先搜索”算法,今天小编继续分享下“广度优先搜索”算法。 一、何为“广度优先搜索” 广度...

  • 算法与数据结构 之 搜索算法

    搜索分为广度优先搜索、深度优先搜索、A*算法。 一、广度优先算法(BFS) 1.1、基本实现和特性:BFS是从一个...

  • 广度优先搜索算法(BFS)

    广度优先搜索算法(BFS) 标签(空格分隔): algorithm 1.广度优先搜索算法(Breadth Firs...

  • 6.2 BFS与DFS

    广度优先搜索(BFS)自顶点s的广度优先搜索(Breadth-First Search)(1) 访问顶点s(2) ...

  • 算法之广度优先搜索(BFS)

    图算法——广度优先搜索 (breadth-first search,BFS)。广度优先搜索让你能够找出两样东西之间...

网友评论

      本文标题:广度优先搜索

      本文链接:https://www.haomeiwen.com/subject/kzciaxtx.html