归并排序

来源:互联网 发布:centos查看端口占用 编辑:程序博客网 时间:2024/05/01 22:58

package DiGui;
/**
 * 归并排序
 * 前提是先给出的两个数组必须有序
 * @author tinyboy
 *
 */
public class MergerApp {
 public static void main(String[] args) {
  // TODO Auto-generated method stub
      int[] arrayA={23,47,91,95};
      int[] arrayB={7,14,39,55,62,74};
      int[] arrayC=new int [10];
      merge(arrayA,4,arrayB,6,arrayC);
      display(arrayC,10);
 }
 public static void merge(int [] arrayA,int sizeA,int [] arrayB,int sizeB,int []arrayC){
  int aDex=0,bDex=0,cDex=0;
  while(aDex<sizeA&&bDex<sizeB){
  if(arrayA[aDex]<arrayB[bDex])
   arrayC[cDex++]=arrayA[aDex++];
  else
   arrayC[cDex++]=arrayB[bDex++];
  }
  // arrayB走完了,只剩下arrayA数组的时候
  while(aDex<sizeA)
   arrayC[cDex++]=arrayA[aDex++];
  while(bDex<sizeB)
   arrayC[cDex++]=arrayB[bDex++];
 }
 public static void display(int[] theArray,int size){
  for(int i=0;i<size;i++)
   System.out.print(theArray[i]+" ");
  System.out.println(" ");
 }
}

原创粉丝点击