java的递归折半查询,java递归

旧城等待, 2022-11-18 02:25 326阅读 0赞

package day01;

/**

* 递归: 在功能(方法)中直接、间接调用了功能(方法)本身

*

* 老和尚讲故事(){

* 1) 从前有座山

* 2) 山上有座庙

* 3) 庙里有个老和尚

* 4) 如果老和尚累死了,就不讲了! ( 递归结束条件)

* 5) 老和尚讲故事()

* }

* y = 1+2+…+(n-1)+n = f(n) = f(n-1)+n 并且 f(1)=1

*

* 递归的优点

* 优点: 业务问题解决的很优雅 只需要解决一个层次,其他层次

* 问题就递归解决了。

* 递归的缺点

* 1) 大量消耗栈内存空间,不能进行过深层次的递归

* 否则 可能出现 栈溢出错误

* 使用递归的要点

* 1)不能过深的递归

* 2)不能发散递归

* 3)必须有结束条件

*/

public class Demo02 {

public static void main(String[] args) {

int n = 10000;//栈运行错误

int y = f(n);

System.out.println(y);

}

public static int f(int n){

if(n==1){

return 1;

}

return n + f(n-1);

}

}

发表评论

表情:
评论列表 (有 0 条评论,326人围观)

还没有评论,来说两句吧...

相关阅读

    相关 java

    递归思想: 递归就是自己在自己的方法里面调用自己。 使用递归时,必须有明确的结束条件,不然容易造成死循环。 递归方法使代码显得更简洁,但是效率特别低,所以一般不推荐使用。