public class 归并排序 {
private static int[] a = {12,23,10,25,15,20,1,2,30,50};
private static int[] b = new int[a.length];
private static void getSort(int s,int e){
if(s < e){
int mid = (e+s)/2;
getSort(s,mid);
getSort(mid+1,e);
Exist(s,mid,e);
}
}
private static void Exist(int s, int mid, int e) {
// TODO Auto-generated method stub
int i = s;
int j = mid+1;
int k = 0;
while(i<mid+1 && j<e+1){
if(a[i] < a[j]){
b[k++] = a[i++];
}else{
b[k++] = a[j++];
}
}
while(i < mid+1){
b[k++] = a[i++];
}
while(j < e+1){
b[k++] = a[j++];
}
for(int arg=0; arg<e-s+1; arg++){
a[s+arg] = b[arg];
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
getSort(0,a.length-1);
for(int i=0; i<a.length; i++){
System.out.print(a[i]+" ");
}
}
}