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

思路: 
得到全部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         else
18         {
19             if (x[n - 1] > max(x, n - 1))
20             {
21                 return x[n - 1];
22             }
23             else
24             {
25                 return max(x, n - 1);
26             }
27         }
28     }
29 
30 }

 

 

 

posted on 2014-06-19 21:26  Lishenyin  阅读(462)  评论(0编辑  收藏  举报

导航