fork download
  1. #include<stdio.h>
  2. #include<time.h>
  3. void merge(int a[],int low, int high, int mid)
  4. {
  5. int i, j, k, c[2000];
  6. i=low;
  7. j=mid+1;
  8. k=low;
  9. while((i<=mid)&&(j<=high))
  10. {
  11. if(a[i]<a[j])
  12. {
  13. c[k]=a[i];
  14. k++;
  15. i++;
  16. }
  17. else
  18. {
  19.  
  20. c[k]=a[j];
  21. k++;
  22. j++;
  23. }
  24. }
  25. while(i<=mid)
  26. {
  27. c[k]=a[i];
  28. k++;
  29. i++;
  30. }
  31. while(j<=j-high)
  32. {
  33. c[k]=a[j];
  34. k++;
  35. j++;
  36. }
  37. for(i=low;i<k;i++)
  38. {
  39. a[i]=c[i];
  40. }
  41. }
  42. int main()
  43. {
  44. int n, a[2000],i;
  45. clock_t st, et;
  46. double ts;
  47. printf("enter the size");
  48. scanf("%d",&n);
  49. printf("the random number are \n");
  50. for(i=0;i<n;i++)
  51. {
  52. a[i]=rand();
  53. printf("%d\t",a[i]);
  54. }
  55. st=clock();
  56. mergesort(a, 0,n-1) ;
  57. et=clock();
  58. ts=(double)(et-st)/CLOCK_PER_SEC;
  59. printf("\n ***************************\n");
  60. printf("\n after sorting");
  61. for(i=0;i<n;i++)
  62. printf("%d\t",a[i]);
  63. printf("\n the time taken is%e",ts);
  64. }
Success #stdin #stdout 0.03s 25968KB
stdin
Standard input is empty
stdout
#include<stdio.h>
#include<time.h>
void merge(int a[],int low, int high, int mid)
{
int i, j, k, c[2000];
i=low;
j=mid+1;
k=low;
while((i<=mid)&&(j<=high))
{
if(a[i]<a[j]) 
{
c[k]=a[i];
k++;
i++;
}
else
{

c[k]=a[j];
k++;
j++;
}
}
while(i<=mid)
{
c[k]=a[i];
k++;
i++;
}
while(j<=j-high)
{
c[k]=a[j];
k++;
j++;
}
for(i=low;i<k;i++)
{
a[i]=c[i];
}
}
int main()
{
int n, a[2000],i;
clock_t st, et;
double ts;
printf("enter the size");
scanf("%d",&n);
printf("the random number are \n");
for(i=0;i<n;i++)
{
a[i]=rand();
printf("%d\t",a[i]);
}
st=clock();
mergesort(a, 0,n-1) ;
et=clock();
ts=(double)(et-st)/CLOCK_PER_SEC;
printf("\n  ***************************\n");
printf("\n after sorting");
for(i=0;i<n;i++)
printf("%d\t",a[i]);
printf("\n the time taken is%e",ts);
}