#include<stdio.h>
#include<stdlib.h>
void merge(int A[],int bp[], int p, int q, int r) {
int i, j, k;
i = p; j = q + 1; k = 0;
while (i <= q && j < r) {
if (A[i] <= A[j])
bp[k++] = A[i++];
else
bp[k++] = A[j++];
}
if (i == q + 1)
for (; j <= r; j++)
bp[k++] = A[j];
else
for (; i <= q; i++)
bp[k++] = A[i];
k = 0;
for (i = p; i <= r; i++)
A[i] = bp[k++];
}
int main() {
int A[] = { 1, 5, 6, 7, 9, 8, 15, 20, 17, 21 };
int bp[]={};
merge(A,bp, 0, 4, 9);
for (int i = 0; sizeof(A) / sizeof(int); i++)
printf("%d\t", A[i]);
return 0;
}