Просто в O (nlogn) временной сложности.

/////сортировка слиянием //////////
import java.util.Scanner;

class B
{
public static void main(String[]ags)
{
Scanner sc=new Scanner(System.in);
System.out.println ("введите размер массива");
int n=sc.nextInt();
System.out.println("введите элемент");
int arr[]=new int[n];
for(int i=0;i‹n;i++)
arr[i]=sc.nextInt();

sort(arr,0 ,n-1);

System.out.println(“после сортировки”);
for(int i=0;i‹n;i++)
System.out .print(arr[i]+" ");
}
public static void sort(int arr[],int l,int r)
{
if(l‹ r)
{
int mid=(l+r)/2;

sort(arr,l,mid);
sort(arr,mid+1 ,r);

merge(arr,l,mid,r);
}
}
public static void merge(int arr[],int l, int mid,int r)
{
int n1=mid-l+1;
int n2=r-mid;

int l_arr[]=new int [n1];
int r_arr[]=new int[n2];

int i,j,k;
i=0;j=0;k=l;
for(int p=0;p‹n1;++p)
{
l_arr[p]=arr[l+p ];
}
for(int q=0;q‹n2;++q)
{
r_arr[q]=arr[q+mid+1];< br /> }

while(i ‹n1 && j‹n2)
{
if(l_arr[i]‹=r_arr[j])
{< br /> arr[k]=l_arr[i];
k++;
i++;
}
else
{
arr[k]=r_arr [j];
j++;
k++;
}
}

///////////////// /////////
while(i‹n1)
{
arr[k]=l_arr[i];
i++;
k++;
}

while(j‹n2)
{
arr[k]=r_arr[j];
j++;
k++;
}

}

}

— — Автор: Rishikesh raj — — — — — — — — — — — — — — — — — — — ФИЛОМАТИЯ | САМОСТОЯТЕЛЬ-РАЗРАБОТЧИК | ТЕХНИЧЕСКИЙ ЭНТУЗИАТ.