Merge-Sort example in java
import java.util.;
import java.io.;
class MergeSortExample
{
static void merge(int[] arr,int l,int mid,int r)
{
int num1=mid-l+1;
int num2=r-mid;
int L[]=new int[num1];
int R[]=new int[num2];
for(int i=0;i<num1;++i)
{
L[i]=arr[l+i];
}
for(int j=0;j<num2;++j)
{
R[j]=arr[mid+1+j];
}
int i=0;
int j=0;
int k=l;
while(i<num1 && j<num2)
{
if(L[i]<=R[j])
{
arr[k]=L[i];
i++;
}
else
{
arr[k]=R[j];
j++;
}
k++;
}
while(i<num1)
{
arr[k]=L[i];
i++;
k++;
}
while(j<num2)
{
arr[k]=R[j];
j++;
k++;
}
}
static void mergeSort(int arr[],int l,int r)
{
if(l<r)
{
int mid=l+(r-l)/2;
mergeSort(arr,l,mid);
mergeSort(arr,mid+1,r);
merge(arr,l,mid,r);
}
}
public static void printArray(int[] arr)
{
int n=arr.length;
for(int i=0;i<n;i++)
{
System.out.print(arr[i]+" ");
}
System.out.println();
}
public static void main(String[] args)
{
int arr[]={12,9,13,6,4,10};
//int n=arr.length;
System.out.println("Array before sorting :");
printArray(arr);
mergeSort(arr,0,arr.length-1);
System.out.println("The Sorted Array is :");
printArray(arr);
}
}