尚硅谷算法与数据结构学习笔记05 -- 递归
1、递归介绍
1.1、递归应用场景
- 看个实际应用场景, 迷宫问题(回溯), 递归(Recursion)
1.2、递归的概念
- 简单的说: 递归就是方法自己调用自己,每次调用时传入不同的变量,递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。
1.3、递归调用机制
- 打印问题
- 阶乘问题
// 阶乘问题
public static int factorial(int n) {if (n == 1) {return 1;} else {return factorial(n - 1) * n;}
}
1.4、递归能解决什么问题
- 各种数学问题如: 8 皇后问题,汉诺塔,阶乘问题,迷宫问题,球和篮子的问题(google 编程大赛)
- 各种算法中也会使用到递归, 比如快排, 归并排序, 二分查找, 分治算法等.
- 将用栈解决的问题 --> 递归代码比较简洁
1.5、递归需遵循的规则
- 执行一个方法时, 就创建一个新的受保护的独立空间(一个线程有自己独立的一个栈空间,每个方法调用对应着一个栈帧)
- 方法的局部变量是独立的, 不会相互影响, 比如 n 变量
- 如果方法中使用的是引用类型变量(比如数组), 就会共享该引用类型的数据
- 递归必须向退出递归的条件逼近, 否则就是无限递归,出现 StackOverflowError, 死龟了
尚硅谷算法与数据结构学习笔记05 -- 递归相关推荐
- Vue数据代理+事件处理+事件修饰符的作用+计算属性的使用,尚硅谷Vue系列教程学习笔记(2)
尚硅谷Vue系列教程学习笔记(2) 参考课程:<尚硅谷Vue2.0+Vue3.0全套教程丨vuejs从入门到精通> 参考链接:https://www.bilibili.com/video/ ...
- 尚硅谷 SpringCloud 第二季学习笔记【已完结】
SpringCloud 一.介绍 (一)cloud和boot之间的依赖关系 https://spring.io/projects/spring-cloud#overview Finchley 是基于 ...
- 【尚硅谷/周阳】JUC学习笔记
JUC学习笔记[尚硅谷/周阳] 本文章基于B站视频教程[juc 与 jvm 并发编程 Java 必学_阳哥- 尚硅谷]进行整理记录,仅用于个人学习,交流使用. 目录标题 JUC学习笔记[尚硅谷/周阳] ...
- 尚硅谷Spring注解开发学习笔记
文章目录 前言 1.课程安排 1.1.容器 1.2.扩展原理 1.3.Web 2.配置文件开发 2.1.导入Spring-context依赖包 2.2.编写Spring配置文件 2.3.编写Perso ...
- 【算法和数据结构学习笔记】整合版
文章目录 算法 前缀和 双指针法 四数之和 分治算法 Offer 58 II 左旋转字符串 回溯算法 动态规划 数据结构 数组 & String & 双指针 字符串 反转字符串 T54 ...
- 尚硅谷springboot 2核心技术学习笔记
开发前先查看系统Java和maven的版本 参考资料 1.尚硅谷/SpringBoot2核心技术与响应式编程 2.springboot官网 3.版本升级变化 maven环境配置 <mirrors ...
- SpringBoot练手项目《尚硅谷智慧校园》学习笔记
一 项目展示 1 登录及角色控制 2首页展示 3 业务模块展示 二 智慧校园系统简介 2.1 项目简介 智慧校园管理系统:主要是以年级.班级为单位,进行老师和学生信息记录和统计功能.项目采用前 ...
- 谈谈算法(数据结构学习笔记)
文章目录 什么是算法 算法举例 高斯简算1到100加法 算法的五个基本特征 算法设计的要求 什么是算法 算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作 ...
- 【C++算法与数据结构学习笔记------用循环数组实现队列】
照王晓东<数据结构>(C++语言版)上打的,以备留用. 1 #include <iostream> 2 using namespace std; 3 template<t ...
最新文章
- iOS - Quartz 2D 画板绘制
- 操作系统上机作业--实现mysys(多进程)
- 六元均匀直线阵的各元间距为_小间距led显示屏的封装方式有哪些?本文带你了解!...
- 华为P50真机谍照曝光:璀璨粉色机身 牢牢锁定女性用户
- 基于OpenCV实现人脸识别--Python
- 12.1-12.5 LNMP架构介绍 , MySQL安装 , PHP安装, Nginx介绍
- 如何以最低廉的价格(249元!!)组装一台Mac黑苹果主机,垃圾佬极限装机!!
- Jmeter接口压力测试
- excel做地图热力图_如何用excel制作中国地图热力数据图
- django 设置媒体url_django-文件上传Media url的配置
- kangle安装php7.0_【Kangle】Linux下EasyPanel及PHP安装升级
- 微信小程序云开发联表查询【聚合】
- 群晖Synology DS918+使用笔记-基础篇
- 不负春光 清风徐徐入手心 一寸光阴一寸金
- 简单实现图片多选功能
- 索尼 a7 IV 和佳能 EOS R6 哪个好
- python marshal loads failed_Python模块学习:marshal 对象的序列化
- 每个程序员都应该读的数学书
- 【NISP一级】备考2021年11月常见易错题型整理
- ROS仿真笔记之——gazebo配置velodyne
热门文章
- 【泡泡图灵智库】基于优化的视觉惯性SLAM与GNSS紧耦合
- 尚硅谷Redis6从入门到精通
- ImportError:undefined symbol: _ZN2at5sliceERKNS_6TensorElN3c108optionalIlEES5_l
- 计蒜客 - A1503
- 大学python难不难_“大学四年怎么过?”其实是有答案的
- Python下安装Pywifi进行WiFi密码破解
- 计算机与软件开发法则
- 老友记台词中英文对照Part1
- 两台局域网电脑大数据传输详细教程
- python 实现k折交叉验证
- Vue数据代理+事件处理+事件修饰符的作用+计算属性的使用,尚硅谷Vue系列教程学习笔记(2)