递归--代码模板

简介: 递归--代码模板

**一、递归  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,数学归纳法思维。

目录
相关文章
|
容器
UniApp scroll-view 事件不生效(@scroll、@scrolltolower、@scrolltoupper ...)
UniApp scroll-view 事件不生效(@scroll、@scrolltolower、@scrolltoupper ...)
2566 0
|
5月前
|
存储 分布式计算 OLAP
百观科技基于阿里云 EMR 的数据湖实践分享
百观科技为应对海量复杂数据处理的算力与成本挑战,基于阿里云 EMR 构建数据湖。EMR 依托高可用的 OSS 存储、开箱即用的 Hadoop/Spark/Iceberg 等开源技术生态及弹性调度,实现数据接入、清洗、聚合与分析全流程。通过 DLF 与 Iceberg 的优化、阶梯式弹性调度(资源利用率提升至70%)及倚天 ARM 机型搭配 EMR Trino 方案,兼顾性能与成本,支撑数据分析需求,降低算力成本。
379 59
|
11月前
|
Linux 网络安全
Linux虚拟机与主机和Xshell的连接问题解决
Linux虚拟机与主机和Xshell的连接问题解决
383 1
|
6月前
|
人工智能 算法 物联网
ComfyUI:搭积木一样构建专属于自己的AIGC工作流(保姆级教程)
通过本篇文章,你可以了解并实践通过【ComfyUI】构建自己的【文生图】和【文生动图】工作流。
ComfyUI:搭积木一样构建专属于自己的AIGC工作流(保姆级教程)
|
存储 算法 Java
【DFS(深度优先搜索)详解】看这一篇就够啦
本文介绍了深度优先搜索(DFS)算法及其应用。DFS从某个顶点出发,深入探索图的每条路径,直到无法前进为止,然后回溯。文章详细解释了DFS的基本思想,并通过示例图展示了其执行过程。此外,文中还探讨了三种枚举方式:指数型枚举、排列型枚举和组合型枚举,并提供了具体的代码实现。最后,文章通过几道练习题帮助读者更好地理解和应用DFS算法。
8496 19
【DFS(深度优先搜索)详解】看这一篇就够啦
|
领域建模 API 数据安全/隐私保护
DDD的函数式编程实现
【8月更文挑战第16天】
182 0
DDD的函数式编程实现
|
安全 编译器 API
Qt实用小技巧:消除警告
Qt实用小技巧:消除警告
605 1
|
存储 数据处理 调度
Python实现定时任务的方案及其比较
Python实现定时任务的方案及其比较
339 0
|
机器学习/深度学习 PyTorch 算法框架/工具
【深度学习】Pytorch Tensor 张量
【1月更文挑战第26天】【深度学习】Pytorch Tensor 张量
|
消息中间件 存储 分布式计算
【大数据学习篇11】广告点击流实时统计
【大数据学习篇11】广告点击流实时统计
474 0
【大数据学习篇11】广告点击流实时统计