JAVA笔记整理3

以下是数组的常用几个案例

50 获取最大值

public static int getMax(int[] arr){

             int max=arr[0];

            for(int x=1;x

                  if(arr[x]>max)

                             max=arr[x];

            }

          return   max;

}

public static void main(String[] args){

         int[] arr={5,1,8,19,11,23};

         int max=getMax(arr);

         System.out.println("MAX="+max);

}

public static int getMax_2(int[] arr){

         int max=0;

        for(int x=1;x

                    if(arr[x]>arr[max]){max=x;}

        }

       return   arr[max];

}

51   数组排序---选择排序(最值出现在最前位)

3,1,4,2,7,5

pubic static void selectSort(int[] arr){

       for(int x=0;x

           for(int y=x+1;y

                  if(arr[x]>arr[y]){

                           int temp=arr[x];

                           arr[x]=arr[y];

                          arr[y]=temp;

                 }

           }

}

52数组排序---冒泡排序

3,1,4,2,7,5               (后面的是最大的,最值出现在最后位)

pubic static void bubbleSort(int[] arr){

       for(int x=0;x

              for(int y=0;y

                     if(arr[y]>arr[y+1]){

                            int temp=arr[y];

                            arr[y]=arr[y+1];

                            arr[y+1]=temp;

                     }

              }

       }

}

=========>-x  让每一次比较的元素减少;-1:避免角标越界;

堆换位置比较多时

53  数组位置置换功能抽取

public static void swap(int[] arr,int a,int b){

          int temp=arr[a];

         arr[a]=arr[b];

         arr[b]=temp;

}

调用swap(arr,y,y+1)      或者Arrays.sort(arr)

54  折半查找

//查找操作

public static int getIndex(int[] arr,int key){

          for(int x=0;x

                if(arr[x]==key) 

                          return x;

           }

          return  -1;

}

public static void main(String[] arg){

      int arr={3,1,5,4,2,9};

      int index=getIndex(arr,2);

     S.o.p(index);

}

----------------------------------------

折半查找(1)

注:提高效率,必须是顺序的数组;

public  static  int  halfSearch(int[] arr,int key){

      int min,max,mid;

      min=0;

      max=arr.length-1;

     mid=(max+min)/2;

     while(arr[mid]!=key){

            if(key>arr[mid])

                      min=mid+1;

           else if(key

                     min=mid-1;

           mid=(max+min)/2;

        }

     return  mid;

}

折半的第二种方式(2)

public static int halfSearch_2(int[] arr,int key){

      int min=0,max=arr.length-1,mid;

      while(min<=max){

                mid=(min+max)/2;

                if(key>arr[mid])

                        min=mid+1;

               else if(key

                        min=mid-1;

              else

                        return mid;

      }

     return -1;       <=====    min>max

}


你可能感兴趣的:(JAVA笔记整理3)