数组应用

1.数组反转

 1 import java.util.Arrays;
 2 
 3 public class ArrayReverse {
 4     public static void main(String[] args){
 5         int[] arr ={1,2,3,4,5,6,7,8,9};
 6         reverse(arr);
 7     }
 8     public static void reverse(int[] arr){
 9         for(int i=0;i<arr.length/2;i++){
10             int temp = arr[i];
11             arr[i] =arr[arr.length-1-i];
12             arr[arr.length-1-i]=temp;
13         }
14         System.out.println(Arrays.toString(arr));
15     }
16 }

 

2.求最值

 1 class  ZuiZhi
 2  {
 3      public static void main(String[] args) 
 4      {
 5          int[] a={2,92,34,54,28};
 6          minMethod(a);
 7          maxMethod(a);
 8      }
 9      public static void minMethod(int[] a)
10      {
11          int min=a[0];//不能初始化为0 数组中可能有负数
12          for (int i=0;i<a.length;i++ )
13          {
14              if(a[i]<min)
15                  min=a[i];
16          }
17          System.out.println("数组内最小的元素是:"+min);
18      }
19      public static void maxMethod(int[] a)
20      {
21          int max=a[0];//不能初始化为0 数组中可能有负数
22          for (int i=0;i<a.length;i++ )
23          {
24              if(a[i]>max)
25                  max=a[i];
26          }
27          System.out.println("数组内最大的元素是:"+max);
28      }
29  
30  }

3.折半查找

 1 /*
 2  折半查找:
 3  3 5 7 9 10 14 
 4  min=0 max=length-1 mid=(max+min)/2
 5  */
 6  class BinarySearch 
 7  {
 8      public static void main(String[] args) 
 9      {
10          int[] a={3,5,7,9,10,14};
11          int index=binarySearch_1(a,7);
12          System.out.println(index);
13          index=binarySearch_2(a,14);
14          System.out.println(index);    
15      }
16      public static int binarySearch_1(int[] a,int key)
17      {
18          int min=0,mid,max=a.length-1;
19          mid=(min+max)/2;
20          while (key!=a[mid])
21          {
22              if(a[mid]>key)
23              {
24                  max=mid-1;
25              }
26              else  if (a[mid]<key)
27              {
28                  min=mid+1;
29              }
30              if (max<min)
31                  return -1;
32              mid=(min+max)/2;
33  
34          }
35          return mid;
36      }
37      public static int binarySearch_2(int[] a,int key)
38      {
39          int min=0,max=a.length-1,mid;
40          while (min<=max)
41          {
42              mid =(max+min)>>1;
43              if(a[mid]>key)
44              {
45                  max=mid-1;
46              }
47              else  if (a[mid]<key)
48              {
49                  min=mid+1;
50              }
51              else 
52                  return mid;
53          }
54          return -1;
55      }
56      
57  }

 

 

 

posted @ 2012-06-26 23:23  Carve_Time  阅读(150)  评论(0编辑  收藏  举报