What is wrong with my program,can you plz tell me
import java.util.*;
public class Main{
public static void merge(int arr[],int l,int r,int m){
int n1=m-l+1;
int n2=r-m;
int L[]=new int[n1];
int R[]=new int[n2];
for(int i=0;i<n1;i++)
L[i]=arr[l+i];
for(int j=0;j<n2;j++)
R[j]=arr[m+1+j];
int i=0;int j=0;
int k=l;
while(i<n1 && j<n2)
{
if(L[i]<R[j]){
arr[k]=L[i];
i++;
}
else{
arr[k]=R[j];
j++;
}
k++;
}
while(i<n1){
arr[k]=L[i];
k++;
i++;
}
while(j<n2){
arr[k]=L[j];
k++;
j++;
} }
public static void sort(int arr[],int l,int r){
if(l<r){
int m=(l+r)/2;
sort(arr,l,m);
sort(arr,m+1,r);
merge(arr,l,r,m);
}
}
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[])
{ try{
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int arr[]=new int[n];
for(int i=0;i<n;i++)
arr[i]=sc.nextInt();
sort(arr, 0, arr.length-1);
printArray(arr); }
catch(Exception e){System.out.println(e);}
}
}