Java方法04——递归

应当仔细地观察,为的是理解;应当努力地理解,为的是行动。——罗曼·罗兰

看完可变参数,来看一下,一种编程技巧,或者说思想——递归。
本篇笔记简介递归定义-->理解-->优缺点分析


目录

  • Java方法04——递归
  • 1.递归定义:
  • 2.实例助解:计算4的乘阶
  • 3.递归的优缺点:


1.递归定义:

程序调用自身的编程技巧称为递归( recursion)。

递归从字面上我们可以理解为:

递去+归来 如下图:

Java中尾递归 java递归详解_开发语言

2.实例助解:计算4的乘阶
public static void main(String[] args) {
	System.out.println(f(4));
}	
public static int f(int n) {
	if (1 == n)
		return 1;
	else
		return n*f(n-1);
}

输出演示,如图

Java中尾递归 java递归详解_递归_02

此题中,按照递归的三个条件来分析:
(1)边界条件:阶乘,乘到最后一个数,即1的时候,返回1,程序执行到底;
(2)递推阶段:当前的参数不等于1的时候,继续调用自身;
(3)回推阶段:从最大的数开始乘,如果当前参数是4,那么就是4 3,即4 (4-1),即n * (n-1)

分析完这道题,我们一起来看一下递归的优缺点。

3.递归的优缺点:

优点:

递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量

简要:代码量少

缺点:

递归算法解题相对常用的算法如普通循环等,运行效率较低。因此,应该尽量避免使用递归,除非没有更好的算法或者某种特定情况,递归更为适合的时候。

简要:运行效率低

总的来说,递归的方法,有时虽然能大幅提升我们写的效率,但是递归其运行效率未必高,一般递归都可以用其他方法来实现,如果非必要,用其他方法整体来说可能会更好些。

作者:Code_流苏(一个喜欢古诗词和编程的Coder😊)