萌新搜索学习笔记

萌新DFS学习笔记

1.1 递归

在学习搜索之前,我们要先学会递归。

先讲一个小故事:有一个宝物被藏在了房子深处,冒险者需要穿过一道道门才能拿到它。有一天,一位冒险家终于开了无数个门,找到了宝物。这时候,他便带着宝物原路返回了,并关上了所有门。

上面就是一个递归的过程,程序就是冒险者,答案就是宝藏。

盗了张图:

是不是原理很简单。

1.2 递归的实现

对于一个递归程序,我们需要考虑两个问题:

  1. 问题的出口,即什么时候结束递归开始返回。
  2. 在没到达出口是要做什么。

这个逻辑有点绕,但只要思考清楚以上两个问题,就可以写出完美的递归。

下面是递归的核心代码:

int search(int p)//搜索到第几层,用于判断是否到出口
{
    if(p...)//到了出口?
    {
        return ....;//做什么?  
    } 
    ...//没到出口做什么? 
    return  search(p+1);//搜索下一层 
} 

递归的本质就是调用自己

1.3 例题

未完待续

posted @ 2020-08-24 23:37  WRuperD  阅读(0)  评论(0编辑  收藏  举报  来源

本文作者:DIVMonster

本文链接:https://www.cnblogs.com/guangzan/p/12886111.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

这是一条自定义内容

这是一条自定义内容