package lwm.algorithm.sort;
public class MergingSort {
int j,k;
public void Merge(int[] arg0,int[] arg1,int i,int m,int n){
for(j=m+1,k=i;i<=m&&j<=n;k++){
if(arg0[i]>arg0[j])arg1[k]=arg0[i++];
else arg1[k]=arg1[j++];
}
if(i<=m){
System.arraycopy(arg0, i, arg1, k, n-k+1);
}
if(j<=m){
System.arraycopy(arg0, j, arg1, k, n-k+1);
}
}
public void MSort(int[] arr1,int[] arr2,int s,int t){
int m;
int[] temp=new int[100];
if (s==t) arr1[s]=arr1[s];
else{
m=(s+t)/2;
MSort(arr1,temp,s,m);
MSort(arr1,temp,m+1,t);
Merge(temp,arr2,s,m,t);
}
}
public void MergeSort(int[] arr){
MSort(arr,arr,0,arr.length-1);
}
}