回溯法以及迷宫问题

概念

什么是回溯法?

回溯法的基本思想:对一个包括有很多结点,每一个结点有若干个搜索分支的问题,把原问题分解为对若干个子问题求解的算法。

我们简单分析一下这句话,其实就是当搜索到某个结点,发现无法再继续搜索下去的时候,就让搜索过程回溯(也称退回)到该结点的上一个结点继续搜索这个结点的其他尚未搜索过的分支,然后一遍一遍重复这个步骤,直到搜索到问题的解或搜索完了全部可搜索分支没有解存在为止

迷宫问题

说到回溯法,就不得不说使用回溯思想最经典的一个问题:迷宫问题。

我们规定:2 为墙壁 0为道路 由图可见,我们有4种不同的通路。 

我们设置入口为(1,1)出口为(7,7)

①. 我们在主方法里先初始化一个迷宫,用二维数组来实现。

②. 我们定义四个成员变量,并且设置入口出口坐标

③. 实现我们迷宫通路的算法,在寻找下一个通路点时,我们就用到了回溯的思想。

完整的实现代码!

总结

多练还是最好的途径,迷宫是一个很典型的问题,大家一定要多多理解其中的思路!

下一讲我们就要介绍树的相关知识啦 :)

PS:有什么问题或者不解的地方可以评论,我都会一一就行回复的,如果有错误或者言语不明的地方,还请大神多多指点!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 回溯法与分支限界法 时间 2016-03-24 标签 搜索 回溯法 1、概念 回溯算法实际上一个类似枚举的搜索尝...
    wangchuang2017阅读 6,874评论 0 4
  • B树的定义 一棵m阶的B树满足下列条件: 树中每个结点至多有m个孩子。 除根结点和叶子结点外,其它每个结点至少有m...
    文档随手记阅读 14,597评论 0 25
  • 一. 算法之变,结构为宗 计算机在很多情况下被应用于检索数据,比如航空和铁路运输业的航班信息和列车时刻表的查询,都...
    Leesper阅读 12,006评论 13 42
  • 纪实生活 体悟人生 很久以前 就听闻新浪博客 是做得相当不错的博客网站 早在2011年的时候 就开始玩新浪博客了 ...
    木风恒阅读 2,701评论 1 1
  • 从一个地方到另一个地方 从意识清醒到逐渐模糊:摇摇晃晃 我们都不胜酒力,却毫不吝啬身体与时光 你诉说着过往,像个满...
    年少如初阅读 1,472评论 0 2

友情链接更多精彩内容