java 数组排序

/*   
    *@description   :   实现任意两整数数组的按从小到大重组   
    *                               先排序,再重组   
    *@Author             :   dalily   
    *@Date                 :   2004-2-22   
    */   
  public   class   ArraySortClass{   
            
  //测试方法,先排序后重组   
  public   static   void   main(String   args[]){   
                      int[]   A   ={12,8,6,15,10,17};   
                      int[]   B   ={7,11,13,2,9,3};   
    
      //对数组排序   
      int[]   A1   =   bubbleSort(A);   
      int[]   B1   =   bubbleSort(B);   
    
      //对数组重组   
      int[]   C   =   assembleArray(A,B);   
                      //输出数组   
                      for   (int   m=0;m<12;m++){   
                              System.out.println("the   C   is   :"   +   C[m]);   
                      }                   
          }   
    
  /*   
    *   实现两个有序整数数组按从小到大的顺序重组   
    *             三个过程:1.按顺序比较两个数组中数据,只到其中一个已经没有剩余数据   
    *                               2.如果比较后的A数组还有剩余,则把A数组的其余数据补充到C数组   
    *                               3.如果比较后的A数组还有剩余,则把A数组的其余数据补充到C数组   
    *   @param   A   :   the   first   Array   
    *   @param   B   :   the   second   Array   
    *   @result     :   the   assembled   Array   
    */   
  public   static   int[]   assembleArray(int[]   A,   int[]   B){   
      int   iALength   =   A.length;   
              int   iBLength   =   B.length;   
      int[]   C   =   new   int[iALength   +   iBLength];   
      int   i=0;   
      int   j=0;   
      int   k=0;   
        
      //按顺序比较两个数组中数据,只到其中一个已经没有剩余数据   
      while   (i<iALength   &&   j   <iBLength){       
    if   (A[i]   <=B[j]){   
          C[k]   =   A[i];   
                i++;   
    }   else{   
          C[k]   =   B[j];   
          j++;   
    }                             
            k++;                               
      }     
    
      //如果比较后的A数组还有剩余,则把A数组的其余数据补充到C数组   
      if   (i<iALength){   
    for   (int   m=i;m<iALength;m++){   
    C[k]   =   A[m];   
            k++;   
    }   
      }   
    
      //如果比较后的B数组还有剩余,则把B数组的其余数据补充到C数组   
      if   (j<iBLength){   
    for   (int   n=j;n<iBLength;n++   )   {   
    C[k]   =   B[n];   
            k++;   
    }   
      }   
      return   C;   
  }   
    
  /*   
    *   采用冒泡排序实现整数数组排序   
    *   @param   A   :   the   before   Array   
    *   @param   B   :   the   sorted   Array   
    */   
  public   static   int[]     bubbleSort(int   A[]){   
  int   iAlength   =   A.length;   
  int   i   =   0;   
  int   k   =   0   ;   
  int   temp   =   0;   
  while   (i   <   iAlength){   
      for   (k=i+1;k<iAlength;k++){   
    if   (A[k]<A[i]){   
    temp   =   A[i];   
    A[i]   =     A[k];   
    A[k]   =   temp;   
    }   
      }     
      i++;   
  }   
  return   A;   
  }   
  }   
----------------------------------------------------------------------------------------------------------------------
如果使用List=ArrayList,则可以使用这样的方法:
Collections.sort((List)LLID,new Comparator(){
   public int compare(Object one,Object two){
    int cc=(((class name)one).getKey().compareTo(((class name)two).getKey()));
     return (cc < 0 ? 1 : cc > 0 ? -1 : 0);
   }
  });

很方便的哦!

本文转自kenty博客园博客,原文链接http://www.cnblogs.com/kentyshang/archive/2007/07/04/805236.html如需转载请自行联系原作者


kenty

上一篇:插入排序_C++


下一篇:C# 遍历List 并删除某个元素