首页 > 代码库 > 用递归的方法求数组中的最大数

用递归的方法求数组中的最大数

思路: 
得到全部5个中最大的数--> 比较第5个数与前四个中最大数的值-> 得到前四个中最大的数--> 比较第四个数与前三个中最大数的值-->得到前三个数中的最大值-->比较第三个数与前两个中最大数的值-->得到前两个数中最大的值-->比较第二个数与第一个数中的最大值

但实际运算是从最右端往左端逐步(和上面的执行路径正好相反)比较的。

 

 1 package test; 2  3 public class ArrayMax { 4  5     public static void main(String[] args) { 6         // TODO Auto-generated method stub 7           int x[] = {10, -2, 4, 49, 49, 100, 23, 4}; 8           System.out.println("max:" +max(x, x.length)); 9     }10     11     static int max(int x[], int n)12     {13         if (n == 1)14         {15             return x[0];16         }17         else18         {19             if (x[n - 1] > max(x, n - 1))20             {21                 return x[n - 1];22             }23             else24             {25                 return max(x, n - 1);26             }27         }28     }29 30 }