起航学习网

- 让每个人都能学到最前沿新知识、新技能!
起航学习网
当前位置: 起航学习网 > 短期培训 > 编程语言 > Java递归算法示例

Java递归算法示例

时间:2022-06-08 14:17:24来源:IT培训网 作者:Java学习网 已有: 名学员访问该课程

  快捷搜索:java递归算法

前言: 在本教程中,IT培训网小编将告诉大家Java递归函数及其优缺点。 在 Java 中,调用自身的方法称为Java递归方法。而且

在本教程中,IT培训网小编将告诉大家Java递归函数及其优缺点。

在 Java 中,调用自身的方法称为Java递归方法。而且,这个过程称为递归。

一个物理世界的例子是放置两个相互面对的平行镜子。它们之间的任何对象都将被递归反射。

递归如何工作?

在上面的例子中,我们recurse()从方法内部调用了main方法。(正常的方法调用)。而且,在 recurse() 方法中,我们再次调用了相同的递归方法。这是一个递归调用。

为了停止递归调用,我们需要在方法内部提供一些条件。否则,该方法将被无限调用。

因此,我们使用if...else 语句(或类似方法)来终止方法内的递归调用。

示例:使用递归的数字的阶乘

class Factorial {
    static int factorial( int n ) {
        if (n != 0)  // termination condition
            return n * factorial(n-1); // recursive call
        else
            return 1;
    }
    public static void main(String[] args) {
        int number = 4, result;
        result = factorial(number);
        System.out.println(number + " factorial = " + result);
    }
}

输出:

4 阶乘 = 24

在上面的示例中,我们有一个名为factorial(). factorial()是从方法中调用的main()。与数字作为参数传递的变量。

在这里,请注意声明,

return n * factorial(n-1);

该factorial()方法正在调用自身。最初, n 的值是 4 inside factorial()。在下一次递归调用期间,将 3 传递给该factorial()方法。这个过程一直持续到n等于 0。

什么时候n等于 0,if语句返回 false,因此返回 1。最后,将累积的结果传递给main()方法。

递归的优缺点

当进行递归调用时,变量的新存储位置会在堆栈上分配。当每次递归调用返回时,旧的变量和参数都会从堆栈中删除。因此,递归通常使用更多内存并且通常很慢。

另一方面,递归解决方案更简单,编写、调试和维护的时间更少。如果大家想了解更多相关知识,不妨来关注一下IT培训网的Java教程,里面的课程内容细致全面,通俗易懂,适合小白学习,希望对大家能够有所帮助。

文章出自:http://qh.itpxw.cn/peixun/software/2022121716.html

文章标题:Java递归算法示例



免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉

你也许会喜欢如下的文章?
(责任编辑:深圳学历教育网)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
培训学校
IT培训网 访问该机构站点 报名留言 加为好友 用户等级:注册会员 用户级别:10 机构名称:IT培训网 联 系 人:罗老师 联系电话:13783581536 联系手机:13783581536 在线客服:起航学习网客服 在 线 QQ:起航学习网客服 电子邮件: 网站域名:http://www.itpxw.cn 注册时间:2016-07-18 11:07 最后登录:2024-02-20 13:02
推荐内容