public class mergeSort
{
public static void main(String[] args)
{
int[] arr = {4,3,2,1};
int[] ans = mergeSort(arr,0,arr.length-1);
for(int p =0;p<ans.length;p++)
{
System.out.print(ans[p] + " ");
}
}
public static int[] mergeTwoSortedArrays(int[] arr1, int[] arr2)
{
int[] merged = new int[arr1.length + arr2.length];
int i = 0;
int j = 0;
int k = 0;
while (i<arr1.length && j<arr2.length)
{
if(arr1[i] <= arr2[j])
{
merged[k] = arr1[i];
i++;
k++;
}
else
{
merged[k] = arr2[j];
j++;
k++;
}
}
if(i==arr1.length)
{
while(j<arr2.length)
{
merged[k] = arr2[j];
j++;
k++;
}
}
if(j==arr2.length)
{
while(i<arr1.length)
{
merged[k] = arr2[i];
i++;
k++;
}
}
return merged;
}
public static int[] mergeSort(int[] arr, int lo, int hi)
{
if(lo==hi)
{
int[] br = new int[1];
br[0] = arr[lo];
return br;
}
int mid = (lo + hi)/2;
int[] fh = mergeSort(arr,lo,mid);
int[] sh = mergeSort(arr,mid+1,hi);
int[] merge = mergeTwoSortedArrays(fh,sh);
return merge;
}
}
output :- 1 1 1 1