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]+" "); } } }