package mergesort;
import java.util.Scanner;
public class mergesort {
public void merge(int[] A, int p, int q, int r)
{
int nl = q - p + 1;
int nr = r - q;
int[] rArr = new int[nl + 1];
int[] lArr = new int[nr + 1];
for (int i = 0; i < nl; i++) {
rArr[i] = A[i + p];
}
for (int j = 0; j < nr; j++)
{
lArr[j] = A[j + q + 1];
}
rArr[nl] = Integer.MAX_VALUE;
lArr[nr] = Integer.MAX_VALUE;
int n = 0;
int m = 0;
for (int i = p; i <= r; i++)
{
if (m <= nl && n <= nr)
{
if (lArr[m] < rArr[n]) {
A[i] = lArr[m];
m++;
} else {
A[i] = rArr[n];
n++;
}
} else {
if (m < nl)
{
A[i] = lArr[m];
m++;
}
else
{
A[i] = rArr[n];