源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

java递归算法实例分析

  • 时间:2022-01-19 22:51 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:java递归算法实例分析
递归算法设计的基本思想是: 对于一个复杂的问题,把原问题分解为若干个相对简单类同的子问题,继续下去直到子问题简单到能够直接求解,也就是说到了递推的出口,这样原问题就有递推得解。 在做递归算法的时候,一定要把握住出口,也就是做递归算法必须要有一个明确的递归结束条件。这一点是非常重要的。其实这个出口是非常好理解的,就是一个条件,当满足了这个条件的时候我们就不再递归了。 关键要抓住的是: (1)递归出口 (2)地推逐步向出口逼近 递归就是方法自身调用自身的行为,注意要写好递归头,也就是什么时候退出递归, 避免出现死循环。 实例1,通过递归打印1~100
package com.lanhuigu.base;
public class CursionTest {
 private static int i = 0;
 /** 
   * 递归打印1到100 
   */
 public static void testCursion01() {
  i++;
  // 自增 
  if (i <= 100) {
   // 小于等于100时回调,否则跳出回调,避免死循环 
   System.out.println(i);
   testCursion01();
   // 回调: 自身调用自身
  } else {
   System.out.println("Game Over!");
  }
 }
 public static void main(String[] args) {
  testCursion01();
  // 打印1~100
 }
}
实例2,通过递归计算某个数的阶乘
package com.lanhuigu.base;
public class CursionTest {
 /** 
   * 递归计算某个数的阶乘 
   */
 public static int testFactorial(int n) {
  if (n == 1) {
   return 1;
  } else {
   return n*testFactorial(n-1);
  }
 }
 public static void main(String[] args) {
  System.out.println(testFactorial(5));
  // 计算5的阶乘
 }
}
关于递归计算阶乘,递归内存分析结构图: [img]http://files.jb51.net/file_images/article/201712/2017121285738782.png?2017111285750[/img] 先放长线,最后收线,然后把鱼拉上岸。 [b]总结[/b] 以上就是本文关于java递归算法实例分析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题。如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部