Program to sort a given list using Merge sort in C language.

#include<stdio.h>
void main()
{
    int A[] = {9,1,4,14,4,15,6};
    int n = 7;
    PrintArray(A,n);
    mergeSort(A,0,6);
    PrintArray(A,n);
}
void mergeSort(int A[], int low, int high)
{
    int mid;
    if(low<high)
    {
        mid = (low + high) /2;
        mergeSort(A, low, mid);
        mergeSort(A, mid+1, high);
        merge(A, mid, low, high);
    }
}
void merge(int A[], int mid, int low, int high)
{
    int i,j,k,B[100];
    i = low ;
    j = mid+1;
    k = low;
    while(i<=mid && j<=high)
    {
        if(A[i]<A[j])
        {
            B[k] = A[i];
            i++;
            k++;
        }
        else
        {
            B[k] = A[j];
            j++;
            k++;
        }
    }
    while (i<=mid)
    {
        B[k] = A[i];
        k++;
        i++;
    }
    while(j<=high)
    {
        B[k] = A[j];
        k++;
        j++;
    }
    for(i=low ; i<=high ; i++)
    {
        A[i] = B[i];
    }
}
void PrintArray(int *A, int n)
{
    for( int i=0; i<n; i++)
    {
        printf("%d,", A[i]);
    }
    printf("\n");
}