not correct output is coming whats the problem with code hlp ASAP
import java.util.*;
public class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int [] arr = new int[N];
for(int i = 0; i<arr.length;i++)
{
arr[i] = sc.nextInt();
}
int [] result = merge(arr, 0, arr.length-1);
display(result);
}
public static int[] merge(int [] arr, int lo, int hi)
{
//base case
if(lo ==hi)
{
int [] br = new int[1];
br[0] = arr[lo];
return br;
}
int mid = (lo+hi)/2;
int [] arr1 = merge(arr,lo,mid);
int [] arr2 = merge(arr,mid+1,hi);
int i = 0; //arr1
int j = 0 ; //arr2
int k = 0; //result array
int [] merged = new int [arr1.length + arr2.length];
while(i<arr1.length && j<arr2.length)
{
if(arr[i]<=arr[j])
{
merged[k] = arr1[i];
k++;
i++;
}
else
{
merged[k] = arr2[j];
k++;
j++;
}
}
if(i == arr1.length)
{
while(j < arr2.length)
{
merged[k] = arr2[j];
k++;
j++;
}
}
if(j==arr2.length)
{
while(i<arr1.length)
{
merged[k] = arr[i];
k++;
i++;
}
}
return merged;
}
public static void display(int [] arr)
{
for(int i=0; i<=arr.length-1;i++)
{
System.out.print(arr[i]+ " ");
}
}
}