小老鼠回家之迷宫解法——分别使用dfs和bfs实现

小老鼠回家之迷宫解法——分别使用dfs和bfs实现

背景

本人今年参加了2018年计算机设计大赛,报了两项,一个是人工智能方案设想,另一个是微课类教学辅助软件——— 回溯和递归,微课类我在设计这个软件的时候借用了汉诺塔问题迷宫问题来辅助教学的,今天我们就来一起来说说后者的故事。

正题

迷宫问题为了描述的形象生动,我采用了小老鼠回家的这个故事。

程序截图
dfs版小老鼠回家

这里写图片描述

程序截图
bfs版小老鼠回家

这里写图片描述

思路

在我看来使用这种图形化界面的展示,会让人更容易懂这个优先搜索的过程,具体官方定义的解释请百度,这里只是博主的个人思路,小老鼠的找自己的家

dfs(深度优先搜索)

先一直向上走,走不通的时候向右走,走到不能在往右走时,再选择向后走,依此类推,最终如果四个方向都无法走通的时候,进行返回,这个的前提是你得记住你走过的点,这样才能回来
注:以上如果有错误希望大家指出!

bfs(广度优先搜索)

广度搜索和深度不一样,不是一条道走到黑,是每一个层级层级的走下去,这个难度大于深度搜索,得实现怎么记住哪个点在哪一层,通过这种思想,很容易得出,广度搜索是可以求出最小路程的,这个很神奇,做出来感觉就像一个慢慢往外围扩散的过程,对不,这样就很好啦,可以基于每一点,每一层,一层一层的扩散,就可以了,直到扩散到该点为止,然后通过分析路程得出最短路径,我个人认为难点还是在如何记住你上一步走了哪一步

注:以上如果有错误希望大家指出!

因为代码写的乱,注释不全,所以这里不贴出来了,如果想要(Java代码)可以评论留下邮箱

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值