递归算法分析

本文介绍了递归算法的基础知识,包括递归的概念和设计法则,并通过实例展示了如何利用递归求阶乘、倒序输出数字、转换进制以及求斐波那契数列。递归算法具有简洁易懂的优点,但也可能导致空间消耗大和栈溢出的问题。递归在深度搜索、并查集和树遍历等算法中有广泛应用。
摘要由CSDN通过智能技术生成

递归算法

引言: 你想买部新手机,于是你去问老爸要钱,老爸说:“找你老妈要去!”,然后你听了老爸的话,找到老妈,老妈说:“想要钱问你老爸要!”,于是你又听了老妈的话,结果你又去找老爸,无奈老爸的回答还和刚才一样,你又去找老妈,老妈的回答也还是刚才那样,然后。。。你就进入递归了!

基础知识

基本概念: 递归是指一个函数自己调用自己。利用数学表达式可表达为:f(x)= f(x-1)+1

递归算法一般要经历两个过程: 递推(归)和回溯。如下图。
在这里插入图片描述
递归算法的基本设计法则:
1、基准情形:必须要有某个基准情形,它无需递归就能解出。
2、不断推进:对于需要求解的情形,每次递归调用都必须要使状况朝向一种基本情况推进。
3、设计法则:假设所有的递归调用都能运行。
4、合成效益发展:在求解一个问题的同一实例时,切勿在不同的递归调用中做重复性的工作(例如使用递归计算斐波那契数列)。

常见的经典递归算法

利用递归求阶乘

代码:

/*
 * 递归求阶乘
 */

public class Test{
   
     public static void main(String[] args) {
   
         System.out.println( jie(5) );
     }     
     public static long jie( long val ) {
   
         long a = 1;
         if(val == 1 ) {
   
              a=
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值