栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

递归java

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

递归java

本质

  1. 递归就是自己调用自己的过程。
  2. 系统会为递归建栈, 这个需要理解一下. 例如, 累加程序, 空间复杂度是 O ( n ) O(n)O(n), 因为只有运行到 paraN = 1 时, 才会弹栈.

 递归求和:

public class Recursion {
    public static int sumToN(int paraN) {
    	if(paraN<=0) {
    		//Basis.
    		return 0;
    	} // of if
    	return sumToN(paraN-1)+paraN;
    }// of sumToN

 Fibonacci:

	
    public static int fibonacci(int paraN) {
    	if(paraN<=0) {
    		//Negative values are invalid.Index 0 corresponds to the first element
    		return 0;
    	} if (paraN==1) {
    		//Basis.
    		return 1;
    	}//of if
    	return fibonacci(paraN-1)+fibonacci(paraN-2);
    }//of fibonacci

整体代码:

package pt;


public class Recursion {
    public static int sumToN(int paraN) {
    	if(paraN<=0) {
    		//Basis.
    		return 0;
    	} // of if
    	return sumToN(paraN-1)+paraN;
    }// of sumToN
    
	
    public static int fibonacci(int paraN) {
    	if(paraN<=0) {
    		//Negative values are invalid.Index 0 corresponds to the first element
    		return 0;
    	} if (paraN==1) {
    		//Basis.
    		return 1;
    	}//of if
    	return fibonacci(paraN-1)+fibonacci(paraN-2);
    }//of fibonacci
	
    public static void main(String arg[]) {
    	int tempValue=5;
    	System.out.println("0 sum to "+ tempValue +" = "+sumToN(tempValue));
    	
    	tempValue =-1;
    	System.out.println("0 sum to "+ tempValue +" = "+sumToN(tempValue));
    	
    	for(int i=0;i<10;i++) {
    		System.out.println("Fibonacci "+i+": "+fibonacci(i));
    	}//of for i
    	
    	
    }// of main
}// of class Recursion

  读者可以简单看下代码,代码不难,可以理解到递归的本质最好,其实汉诺塔问题也是经典的递归,但它更多的是对形参/实参的理解, 所以不写在这里给读者添堵. 再说了, 那种极端的例子也不具有代表性.

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/678717.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号