Implement a Merge Sort algorithm to sort a given set of elements and determine the time required to sort the elements. Repeat the experiment for different values of n, the number of elements in the list to be sorted. The elements can be read from a file or can be generated using the random number generator.

#include<stdio.h>
#include<conio.h>
void simple_merge(int low,int mid,int high,int *a){
	int l=low;
	int m=mid+1;
	int temp[20];
	int k=0;
	while(l <= mid && m <= high){
		if(a[l]<= a[m]){
			temp[k++]=a[l];
			l++;
		}
		else{
			temp[k++]=a[m];
			m++;
		}
	}
	while(l<=mid){
		temp[k++]=a[l];
		l++;
	}
	while(m <= high){
		temp[k++]=a[m];
		m++;
	}
	k=0;
	while(low<=high){
		a[low]=temp[k++];
		low++;
	}
}
void merge_sort(int low,int high,int *a){
	if(low<high){
		int mid=(low+high)/2;
		merge_sort(low,mid,a);
		merge_sort(mid+1,high,a);
		simple_merge(low,mid,high,a);
	}
}
void main(){
	int a[20];
	int n;
	int i;
	clrscr();
	printf("Enter size of array\n");
	scanf("%d",&n);
	printf("Enter all array elements to sort\n");
	for(i=0;i<n;i++)
		scanf("%d",&a[i]);
	merge_sort(0,n-1,&a[0]);
	printf("The sorted values are\n");
	for(i=0;i<n;i++)
		printf("%d\n",a[i]);
	getch();
}