#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void merge(int a[],int l,int m,int r){
int n1=m-l+1,n2=r-m,i,j,k;
int *L
=(int*)malloc(n1
*sizeof(int)); int *R
=(int*)malloc(n2
*sizeof(int)); for(i=0;i<n1;i++)
L[i]=a[l+i];
for(j=0;j<n2;j++)
R[j]=a[m+1+j];
i=0;
j=0;
k=l;
while(i<n1&&j<n2)
a[k++]=(L[i]<=R[j])?L[i++]:R[j++];
while(i<n1)
a[k++]=L[i++];
while(j<n2)
a[k++]=R[j++];
}
void sort(int a[],int l,int r){
if(l<r){
int m=(l+r)/2;
sort(a,l,m);
sort(a,m+1,r);
merge(a,l,m,r);
}
}
int main(){
int n,i;
printf("Enter the number of elements:"); if(n<=5000){
printf("Please enter a value greater than 5000"); return 0;
}
int *a
=(int*)malloc(n
*sizeof(int)); for(i=0;i<n;i++)
for(i=0;i<1000;i++)
sort(a,0,n-1);
printf("Time taken to sort %d elements: %f seconds\n",n
,((double)(e
-s
))/CLOCKS_PER_SEC
/1000); return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RkbGliLmg+CiNpbmNsdWRlPHRpbWUuaD4Kdm9pZCBtZXJnZShpbnQgYVtdLGludCBsLGludCBtLGludCByKXsKaW50IG4xPW0tbCsxLG4yPXItbSxpLGosazsKaW50ICpMPShpbnQqKW1hbGxvYyhuMSpzaXplb2YoaW50KSk7CmludCAqUj0oaW50KiltYWxsb2MobjIqc2l6ZW9mKGludCkpOwpmb3IoaT0wO2k8bjE7aSsrKQpMW2ldPWFbbCtpXTsKZm9yKGo9MDtqPG4yO2orKykKUltqXT1hW20rMStqXTsKaT0wOwpqPTA7Cms9bDsKd2hpbGUoaTxuMSYmajxuMikKYVtrKytdPShMW2ldPD1SW2pdKT9MW2krK106UltqKytdOwp3aGlsZShpPG4xKQphW2srK109TFtpKytdOwp3aGlsZShqPG4yKQphW2srK109UltqKytdOwpmcmVlKEwpOwpmcmVlKFIpOwp9CnZvaWQgc29ydChpbnQgYVtdLGludCBsLGludCByKXsKaWYobDxyKXsKaW50IG09KGwrcikvMjsKc29ydChhLGwsbSk7CnNvcnQoYSxtKzEscik7Cm1lcmdlKGEsbCxtLHIpOwp9Cn0KaW50IG1haW4oKXsKaW50IG4saTsKcHJpbnRmKCJFbnRlciB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzOiIpOwpzY2FuZigiJWQiLCZuKTsKaWYobjw9NTAwMCl7CnByaW50ZigiUGxlYXNlIGVudGVyIGEgdmFsdWUgZ3JlYXRlciB0aGFuIDUwMDAiKTsKcmV0dXJuIDA7Cn0KaW50ICphPShpbnQqKW1hbGxvYyhuKnNpemVvZihpbnQpKTsKc3JhbmQodGltZShOVUxMKSk7CmZvcihpPTA7aTxuO2krKykKYVtpXT1yYW5kKCklMTAwMDAwOwpjbG9ja190IHM9Y2xvY2soKTsKZm9yKGk9MDtpPDEwMDA7aSsrKQpzb3J0KGEsMCxuLTEpOwpjbG9ja190IGU9Y2xvY2soKTsKcHJpbnRmKCJUaW1lIHRha2VuIHRvIHNvcnQgJWQgZWxlbWVudHM6ICVmIHNlY29uZHNcbiIsbiwoKGRvdWJsZSkoZS1zKSkvQ0xPQ0tTX1BFUl9TRUMvMTAwMCk7CmZyZWUoYSk7CnJldHVybiAwOwp9