import java.util.Arrays;
public class MergeSort {
private static void merge(
int[] a,
int low,
int mid,
int high){
int[] temp=
new int[high-low+
1];
int i=low;
int j=mid+
1;
int k=
0;
while(i<=mid&&j<=high){
if(a[i]<a[j]){
temp[k++]=a[i++];
}
else{
temp[k++]=a[j++];
}
}
while(i<=mid){
temp[k++]=a[i++];
}
while(j<=high){
temp[k++]=a[j++];
}
for(
int k2=
0;k2<temp.length;k2++){
a[k2+low]=temp[k2];
}
}
public static int[]
mergeSort(
int[] a,
int low,
int high){
int mid=(low+high)/
2;
if(low<high){
mergeSort(a,low,mid);
mergeSort(a,mid+
1,high);
merge(a, low, mid, high);
}
return a;
}
public static void main(String[] args) {
int []a={
2,
7,
8,
3,
1,
6,
9,
0,
5,
4};
mergeSort(a,
0, a.length-
1);
System.
out.println(Arrays.toString(a));
}
}