基本算法思想之递归

递归算法就是在程序中不断反复调用自身来达到求解问题的方法。这里的重点是调用自身,这就要求待求解问题能够分解为相同问题的一个子问题。这样,通过多次递归调用,便可以完成求解。

递归调用是一个方法在其方法体内调用其自身的方法调用方式。这种方法也称为"递归方法"。在递归方法中,主调方法又是被调方法。执行递归方法将反复调用其自身。每调用一次就进入新的一层。

方法的调用分为两种情况:直接递归和间接递归。

  • 直接递归,即在方法中调用方法本身。
  • 间接递归,即间接地调用一个方法,如A方法调用B方法,B方法又调用方法A。间接递归用得不多。

非递归形式比递归形式运行速度要慢一些。这是因为附加的方法调用增加了时间开销。

递归算法常用于一些数学计算,或者有明显的递推性质的问题。理解递推最常用的一个例子是求阶乘法:

import java.util.Scanner;

public class Solution {

    public static int fact(int n) {
        if (n <= 1) {
            return 1;
        } else {
            return n * fact(n - 1);
        }
    }

    public static void main(String[] args) {
        System.out.println("请输入要求阶乘的一个整数:");
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        System.out.println(n + "的阶乘结果为:" + fact(n));
    }
}

你可能感兴趣的:(基本算法思想之递归)