【算法图解随笔】广度优先搜索

求解最短路径的问题可以使用广度优先搜索,主要思路:

  • 使用图来建立模型

  • 使用广度优先遍历,找到满足条件的点为终点

广度优先遍历就是 从起始点,按关系由近到远进行遍历。
对于广度优先遍历通常使用的数据结构为队列(FIFO),具体还是比较简单的。
那么求解最短路径,主要有三点:

  • 图的表示:使用散列表的数据结构,存储每个点及其相邻点,如 {‘node0’: [‘node1’, ‘node2’]}
  • 双向队列存储要搜索的点,当队列不为空时,从队列一端取要检查的点,满足条件结束,否则,将其相邻点放入另一端
  • 避免重复检查,陷入死循环,检查过的点要保存,如果是检查过的点直接跳过

与广度优先对应的另外一种叫深度优先遍历,常用的实现方法是递归。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值