码迷,mamicode.com
首页 > 编程语言 > 详细

对递归算法的理解

时间:2017-09-05 23:08:59      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:system   代码量   可读性   div   过程   调用   能力   递归   实例   

   1.递归的定义:程序调用自身的编程技巧称为递归。递归做为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。

  2.递归的优点:代码简洁,结构清晰,可读性强,而且容易用数学归纳法来证明算法的正确性;

  3.递归的缺点:递归算法的运行效率较低,无论是耗费的计算时间还是占用的存储空间都比非递归算法要多。

  4.递归的实例:
    1).计算 n! ;
 1 public class Demo {
 2     public static void main(String[] args) {
 3         System.out.println(recursion(10));
 4     }
 5     public static int recursion(int i){
 6         int sum = 0;
 7         if(i == 1){
 8             return 1;
 9         }else{
10             sum = i * recursion(i-1);
11         }
12         return sum;
13     }
14 }

 

对递归算法的理解

标签:system   代码量   可读性   div   过程   调用   能力   递归   实例   

原文地址:http://www.cnblogs.com/qmdx00/p/7482058.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!