Java递归,尾递归

简介: 递归的进一步优化,使用尾递归进行优化递归,减少递归的次数,提高性能

递归

  • 1.递归方法,一个方法体内调用它自身
  • 2.方法递归包含了一种隐式的循环,他会重复执行某行代码,但这种重复无序循环控制递归一定要向已知方向递归,否则这种递归就变成了无穷递归,类似与死循环
题目
已知有一个数列:f(0) = 1,f(2) = 4,f(n+2) = 2*f(n+1) +f(n),
其中n是大于0的整数,求f(10)的值

递归

//    递归
    public int f(int n) {
        if(n==0) {
            return 1;
        }else if (n == 1) {
            return 4;
        }else {
            return 2*f(n-1)+f(n-2);
        }    
    }
尾递归
尾递归可以减少函数的调用的次数,避免一些重复性的运算,提高运行效率
//    尾递归
    public int func(int n, int a,int b,int c) {
        if (c==0) {
            return 1;    
        }else if (c==1) {
            return 4;
        }else {
            if(n==c) {   # 控制循环的结束
                return a+2*b;
            }
            else {
                return func(n, b,a+2*b,c=c+1);    # 将每次循环的结果传入循环
            }
                
        }
相关文章
|
5天前
|
Java
java中递归实例
java中递归实例
19 0
|
5天前
|
Java C语言
详解java方法与递归
详解java方法与递归
13 3
|
5天前
|
自然语言处理 Java 编译器
【Java探索之旅】方法重载 递归
【Java探索之旅】方法重载 递归
11 0
|
5天前
|
SQL Java 关系型数据库
java 递归返回树形组织结构(附带树形菜单的搜索)
java 递归返回树形组织结构(附带树形菜单的搜索)
19 0
|
5天前
|
算法 Java
Java必刷入门递归题×5(内附详细递归解析图)
Java必刷入门递归题×5(内附详细递归解析图)
36 1
C4.
|
5天前
|
机器学习/深度学习 存储 搜索推荐
Java的递归
Java的递归
C4.
9 0
|
5天前
|
机器学习/深度学习 Java
【详识JAVA语言】递归
【详识JAVA语言】递归
15 0
|
5天前
|
Java 索引 算法
java递归求和
java递归求和
35 7
java递归求和
|
5天前
|
JSON 前端开发 Java
|
5天前
|
Java
深入理解 Java 方法重载与递归应用
方法重载 允许在同一个类中定义多个具有相同名称的方法,但 参数列表 必须不同。
39 0