import java.util.Arrays;public class SortTest {    public static void merge(int a[], int first, int mid, int last) {  
    int i, j, k;
    i = first;
    j = mid + 1;     
    k = 0;       int[] tmp= new int[a.length];
    
    while (i <= mid && j <= last) {  
        if (a[i] <= a[j]) 
         tmp[k++] = a[i++];           
        else 
         tmp[k++] = a[j++];
    }  
  
    while (i <= mid)  
     tmp[k++] = a[i++];  
  
    while (j <= last)  
     tmp[k++] = a[j++];      
    
    while(first <= last) {  
        a[first] = tmp[first ++];  
    }    
}   public static void mergeSort(int a[], int first, int last) {
if(first < last) {
int mid = (first + last) / 2;
mergeSort(a, first, mid);
mergeSort(a, mid + 1, last);
merge(a, first, mid, last);
}
}

public static void mergeArray(int[] a) {
mergeSort(a, 0, a.length - 1);
}

public static void main(String[] args) {
int[] a = { 5, 7, 3, 9, 2, 1, 4, 6, 8 };
mergeArray(a); //归并排序         for (int i = 0; i < a.length; i++)
            System.out.println(Arrays.toString(a)); }
}输出结果为:
[0, 0, 0, 0, 0, 0, 3, 5, 7]