美文网首页算法思想
基本算法思想之递归

基本算法思想之递归

作者: JRTx | 来源:发表于2017-08-24 20:29 被阅读0次

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

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

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

  • 直接递归,即在方法中调用方法本身。
  • 间接递归,即间接地调用一个方法,如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));
    }
}

相关文章

  • 基本算法思想之递归

    递归算法就是在程序中不断反复调用自身来达到求解问题的方法。这里的重点是调用自身,这就要求待求解问题能够分解为相同问...

  • 【Python】(十一)从汉诺塔看Python中的递归问题

    递归的原则 递归算法必须具有基本情况。 递归算法必须改变其状态并向基本情况靠近。 递归算法必须以递归方式调用自身 ...

  • 二叉树算法之2-计算二叉树节点数

    算法思想:递归

  • 分治法

    分治思想 并不仅仅是一种算法,更是一种设计算法的思想 基本思想 Divide :把问题分解 Conquer :递归...

  • 递归:基础知识概念

    1、递归基本框架 2、算法的主要思想就是“分治”,递归是分治最突出的算法。有规律的事物就可以用有限来表示无限。3、...

  • 数据结构第二季 Day13 递归 、斐波那契数列

    一、初识递归 1、递归的定义?递归是算法思想或者算法策略吗? 递归的定义:函数(方法)直接或者间接调用自身。 严格...

  • 算法设计与分析总结

    2016 summer & 1、递归与分治法 递归的基本思想:一个直接或间接调用自身的算法 (1)斐波那契数列: ...

  • 算法02-递归

    算法02-递归 一、定义 1、思想 程序调用自身的编程技巧称为递归(recursion)。 递归做为一种算法在程序...

  • 递归算法思想

    在编写计算机程序时,有时使用递归算法可以有效解决一些问题,递归算法往往使算法的描述简洁而且易于理解。 递归算法,就...

  • 二叉树算法之0-计算二叉树的深度

    算法思想:使用递归 算法解析:分别递归左树和右树,递归到叶子节点时返回0,递归回溯时值+1,不断累积回溯的深度,每...

网友评论

    本文标题:基本算法思想之递归

    本文链接:https://www.haomeiwen.com/subject/epzedxtx.html