递归--代码模板

简介: 递归--代码模板

**一、递归  VS  循环**

递归:通过函数体来进行的循环。

汇编:它没有所谓的循环嵌套这一说,你之前有一段指令写在什么地方,你不断的跳到之前的指令的地方去执行那条指令,这就是递归。

**二,盗梦空间**

1,向下进入到不同梦境中;向上又回到原来一层。

2,通过声音同步回到上一层。

3,每一层的环境和周围的人都是一份拷贝、主角等几个人穿越不同层级的梦境(发生和携带变化)。


**三,递归套用的模板**


C/C++写法

```cpp

void recursion(int level, int param) {

 // recursion terminator

 if (level > MAX_LEVEL) { // 一、递归终结条件

   // process result

   return ;

 }


 // process current logic

 process(level, param);  // 二、处理当前层逻辑


 // drill down

 recursion(level + 1, param);// 三、下探到下一层


 // reverse the current level status if needed // 四、清理当前层

}

```

java写法

```java

// Java

public void recur(int level, int param) {

 // terminator

 if (level > MAX_LEVEL) {

   // process result

   return;

 }

 // process current logic

 process(level, param);

 // drill down

 recur( level: level + 1, newParam);

 // restore current status

```

python写法

```python

def recursion(level, param1, param2, ...):

   # recursion terminator

   if level > MAX_LEVEL:

   process_result

   return

   # process logic in current level

   process(level, data...)

   # drill down

   self.recursion(level + 1, p1, ...)

   # reverse the current level status if needed

```

JavaScript写法

```javascript

const recursion = (level, params) =>{

  // recursion terminator

  if(level > MAX_LEVEL){

    process_result

    return

  }

  // process current level

  process(level, params)

  //drill down

  recursion(level+1, params)

  //clean current level status if needed

 

}

```

**四,思维要点**

1,不要人肉进行递归(最大误区)

刚开始学,可以把状态树画出来。到后面了直接看函数本身开始写即可。


2,找到最近最简方法,将其拆解成可重复解决的问题(重复子问题)


3,数学归纳法思维。

目录
相关文章
|
6天前
|
算法 数据库
10.如何正确编写递归
10.如何正确编写递归
23 0
|
6天前
|
机器学习/深度学习 算法 C语言
【新手解答9】深入探索 C 语言:递归与循环的应用2
【新手解答9】深入探索 C 语言:递归与循环的应用2
43 0
|
6天前
|
算法 C语言 C++
【新手解答8】深入探索 C 语言:递归与循环的应用
【新手解答8】深入探索 C 语言:递归与循环的应用
35 0
|
6天前
|
算法 Java Serverless
【Java递归】一篇文章带你了解,什么是递归 ,递归的特点,递归应用场景,递归练习题
【Java递归】一篇文章带你了解,什么是递归 ,递归的特点,递归应用场景,递归练习题
|
7月前
链表翻转循环和递归写法(画图分析)
链表翻转循环和递归写法(画图分析)
20 0
|
7月前
|
Java
二叉排序树的三种遍历方式和实现源代码
二叉排序树的三种遍历方式和实现源代码
94 0
|
9月前
|
编译器 Serverless Python
python--递归、遍历文件夹、二分查找
python--递归、遍历文件夹、二分查找
|
9月前
|
算法
回溯到底怎么用?
回溯到底怎么用?
126 0
|
10月前
|
机器学习/深度学习 算法 C语言
函数递归-------套娃套路深,要么你玩递归,要么递归玩你
函数递归-------套娃套路深,要么你玩递归,要么递归玩你
二叉树的运用(递归)(遍历方式)(简洁.含代码,习题)(一)
二叉树的运用(递归)(遍历方式)(简洁.含代码,习题)