04 算法之广度优先搜索-python实现

本文介绍了如何使用Python实现广度优先搜索(BFS)算法,该算法能够找到图中一个顶点到另一个顶点的最短路径,即最少经过的边数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

广度优先搜索算法,找出一个顶点到另外一个顶点需要最少经过的边数

#!python
#coding=utf-8

"""
广度优先搜索算法,
解决获取图中某点到某点最短路径问题:即从出发点到终点的边数最少)
时间复杂度O(V+E) V:图的顶点数 E:图的边数

假如有如下图所示:
郑州(ZZ)---------------广州(GZ)---深圳(SZ)
  |                       |          |
杭州(HZ)----北京(BJ)----天津(TJ)---武汉(WH)
  |            |                     |
  |---------重庆(CQ)------------------
从杭州到武汉有以下可选路径:
* 杭州-->郑州-->广州-->深圳-->武汉
* 杭州-->郑州-->广州-->天津-->武汉
* 杭州-->北京-->天津-->武汉
* 杭州-->重庆-->北京-->天津-->武汉
* 杭州-->重庆-->武汉
* 其他略
我们将通过广度优先搜索算法来找到【杭州-->重庆-->武汉】这条这段路径

@:param graph : 城市路线图
@:param start : 出发城市
@:param end   : 目的地城市
"""
def build_city_graph():
    # 元组数组,元组第一个属性为当前城市,第二个属性为当前城市的父级城市
    city_graph = {
   
   }
    city_graph["HZ"] = [("ZZ", "HZ"), ("BJ", "HZ"), ("CQ", "HZ")]
    city_graph["ZZ"] = [("GZ", "ZZ")]
    city_graph
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值