参考算法第四版
package offer;
import java.util.ArrayList;
import java.util.Arrays;
public class Solution {
private static int[] temp;
public static void sort(int[] a){
temp = new int[a.length];
sort(a,0,a.length-1);
for(int k=0;k<=a.length-1;k++){
System.out.println(a[k]);
}
}
public static void sort(int[] a,int lo,int hi){
if(lo>=hi) return;
int mid = (hi-lo)/2 +lo;
sort(a,lo,mid);
sort(a,mid+1,hi);
merge(a,lo,mid,hi);
}
public static void merge(int[] a,int lo,int mid,int hi){
int i = lo,j=mid+1;
for(int k=lo;k<=hi;k++){
temp[k] = a[k];
}
for(int k=lo;k<=hi;k++){
if (i>mid)
a[k] = temp[j++];
else if(j>hi)
a[k] = temp[i++];
else if (temp[i]<temp[j])
a[k] = temp[i++];
else
a[k] = temp[j++];
}
}
public static void main(String args[]){
Solution test = new Solution();
int[] a = {2,3,5,7,4,6,1,9};
test.sort(a);
}
}