递归算法

作者: 知识学者 | 来源:发表于2018-04-07 22:28 被阅读18次

    据说凡是可以循环的步骤,都可以递归表示出来。

    递归的关键有二点:
    1.0 递归公式,即递推式。
    2.0 递归出口。


    递归求数组的和

    package day20180407;
    public class Sumarry {
        public static void main(String[] args) {
          int[] arry= {1,2,3,4,5};
          System.out.println("the sum of the arry="+sum(arry,arry.length-1));
        }
        
        static int  sum(int[] arry,int n)
        {
            if(n==0)
            {
                return arry[0];
            }
            else 
            {
              return sum(arry,n-1)+arry[n];
            
            }
            
        }
    
    }
    

    结果是

    the sum of the arry=15
    

    求数组的最大数

    package day20180407;
    public class Maxarry {
         static int count=0;
        public static void main(String[] args) {
        
              int[] arry= {1,2,3,4,5,88,-85,1};
              System.out.println("the max of the arry="+max(arry,arry.length-1));
              System.out.println("count function="+count);
        }
        
        static int max(int[] arry,int n)
        {
           count++;
           if(n==0) 
           {
               return arry[0];
           }
           else
           {
               if(max(arry,n-1)>arry[n])
               return max(arry,n-1);
               else
              return arry[n];
               
           }
            
        }
    
    }
    
    

    结果是:

    the max of the arry=88
    count function=27
    

    可以看成这个函数,递归了20多次,你能理解其过程嘛,反正计算机可以。 我感觉递归就像一种哲学。

    相关文章

      网友评论

        本文标题:递归算法

        本文链接:https://www.haomeiwen.com/subject/vmquhftx.html