java递归算法实现

java递归算法实现Coding 多了 递归算法是非常常见的 最近我一直在做树形结构的封装 所以更加的离不开递归算法 所以今天就简单说一下这个递归算法 用 java 实现一个非常经典的递归实例 nbsp nbsp nbsp nbsp nbsp 递归算法 其实说白了 就是程序的自身调用 它表现在一段程序中往往会遇到调用自身的那样一种 coding 策略 这样我们就可以利用大道至简的思想 把一个大的复杂的问题层层转换为一个小的和原问题相似的问题来求解的这样一种策

        Coding多了,递归算法是非常常见的,最近我一直在做树形结构的封装,所以更加的离不开递归算法。所以今天就简单说一下这个递归算法,用java实现一个非常经典的递归实例。

 

        递归算法,其实说白了,就是程序的自身调用。它表现在一段程序中往往会遇到调用自身的那样一种coding策略,这样我们就可以利用大道至简的思想,把一个大的复杂的问题层层转换为一个小的和原问题相似的问题来求解的这样一种策略。这样我们就能看到我们会用很少的语句解决了非常大的问题,所以递归策略的最主要体现就是小的代码量解决了非常复杂的问题。

 

        做过树形结构的都知道,我们有时候遇到的树是无限级别的树,这样我们就必须要利用循环和递归算法来实现无限级别的树。

 

        在做递归算法的时候,一定要把握住出口,也就是做递归算法必须要有一个明确的递归结束条件。这一点是非常重要的。其实这个出口是非常好理解的,就是一个条件,当满足了这个条件的时候我们就不再递归了。

 

       下面用一个java的实例来实现一下递归算法。


        问题描述:

java递归算法实现

 

       Java代码清单:


package com.cjq.filedown; public classFab { public static void main(String args[]){ System.out.println(fab(5)); } private static int fab(int index){ if(index==1 || index==2){ return 1; }else{ return fab(index-1)+fab(index-2); } } } 

           运行结果:

 java递归算法实现

        程序分析:

                这个实例是非常经典的实例,主要是利用递归实现了Fibonacci数列。这个递归算法的出口是在

if(index==1 || index==2){ return 1; }

                这个代码段上,如果程序的index符合条件就会停止进行递归。所以这个程序的运行流程是:

         java递归算法实现

       

        程序分析到这里,递归的实现也就完成了,读者可以自己简单的做个demo,感受一下这个算法的精妙之处,其实很多人都在说算法难,难于上青天,其实掌握算法的根才是最重要的,什么是算法的根呢,就拿这个递归算法来说吧,我感觉这个根就是那个出口,只要找到这个出口所在,那么算法自然而然就能水到渠成了。


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/224325.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午12:11
下一篇 2026年3月17日 下午12:12


相关推荐

  • Java Calendar获取年、月、日、时间[通俗易懂]

    Java Calendar获取年、月、日、时间[通俗易懂]Calendarc=Calendar.getInstance(TimeZone.getTimeZone(“GMT+08:00”));//获取东八区时间intyear=c.get(Calendar.YEAR);//获取年intmonth=c.get(Calendar.MONTH)+1;//获取月份,0表示1月份intday=c.get(Calend…

    2022年5月2日
    46
  • Web服务器配置管理

    Web服务器配置管理一文速学 Web 服务器配置管理

    2026年3月19日
    2
  • Mac Catalina安装配置hadoop hive hbase( 完整可用版)

    Mac Catalina安装配置hadoop hive hbase( 完整可用版)

    2021年5月12日
    134
  • c++ com 组件

    c++ com 组件用 VC 编程所必需掌握的几个关键概念 这里所说的均是用 C 语言条件下的 COM 编程方式 1 COM 组件实际上是一个 C 类 而接口都是纯虚类 组件从接口派生而来 我们可以简单的用纯粹的 C 的语法形式来描述 COM 是个什么东西 classIObject public virtualFunct 0 virtualF

    2026年3月17日
    2
  • 软件性能测试包括哪些方面,简述软件系统性能指标主要包括哪些方面

    软件性能测试包括哪些方面,简述软件系统性能指标主要包括哪些方面软件系统性能指标可以衡量一个软件系统的运行效果 有关软件系统性能指标主要包括哪些方面呢 大致包括 时间效率 空间效率 事务操作性能 IO 性能 数据库性能 内存性能 初始化 退出时间 资源利用率等 这些都是软件系统性能指标的主要参考依据 下面一起来看看具体的软件系统性能指标有哪些细节吧 软件系统性能指标主要有哪些方面 1 事务处理时间 指软件中完成一项事物所需的运行时间 一般主要用来评价事务处理的效

    2026年3月26日
    2
  • 从智能家居的发展看对讲企业的定位

    从智能家居的发展看对讲企业的定位当你在浏览最近的热词榜单时,智能家居会位居其中。自智慧城市建设的大潮来袭之后,智能家居是“首当其冲”,自然是占了个大便宜!同时,楼宇对讲企业也迎来了春天。相信好多人都知道楼宇对讲,它最早是出现在高层住宅、公寓大厦内外,用来传递户内与单元门之间的信息,并控制防盗门,甚至可在紧急情况下住户通过它向安保值班室报警。它是智能家居体系下最重要的一部分。如今面对智…

    2022年6月22日
    28

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号