Vikhyath_11

p3man

Jul 27th, 2024
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<time.h>
  3. #define MAXSIZE 30000
  4. #define NTIMES 5000
  5. void merge(int a[],int low,int mid,int high)
  6. {
  7. int i,j,k,p;
  8. int b[MAXSIZE];
  9. i=low;
  10. j=mid+1;
  11. k=low;
  12. while(i<=mid&&j<=high)
  13. {
  14. if(a[i]<=a[j])
  15. {
  16. b[k]=a[i];
  17. i=i+1;
  18. }
  19. else
  20. {
  21. b[k]=a[j];
  22. j=j+1;
  23. }
  24. k=k+1;
  25. }
  26. while(i<=mid)
  27. {
  28. b[k]=a[i];
  29. i=i+1;
  30. k=k+1;
  31. }
  32. while(j<=high)
  33. {
  34. b[k]=a[j];
  35. j=j+1;
  36. k=k+1;
  37. }
  38. for(i=low;i<=high;i++)
  39. {
  40. a[i]=b[i];
  41. }
  42. }
  43. void mergesort(int a[],int low,int high)
  44. {
  45. int mid;
  46. if(low<high)
  47. {
  48. mid=(low+high)/2;
  49. mergesort(a,low,mid);
  50. mergesort(a,mid+1,high);
  51. merge(a,low,mid,high);
  52. }
  53. }
  54. int main()
  55. {
  56. int a[MAXSIZE],j,i,n,k;
  57. double runtime=0;
  58. clock_t start,end;
  59. printf("Enter the value of n\n");
  60. scanf("%d",&n);
  61. for(k=1;k<=NTIMES;k++)
  62. {
  63. srand(1);
  64. for(i=1;i<=n;i++)
  65. a[i]=rand();
  66. start=clock();
  67. mergesort(a,1,n);
  68. end=clock();
  69. runtime=runtime+((end-start)/CLK_TCK);
  70. }
  71. runtime=runtime/NTIMES;
  72. printf("\nSorted elements are\n");
  73. for(i=1;i<=n;i++)
  74. printf("%d\n",a[i]);
  75. printf("Time taken for sorting is %lf seconds",runtime);
  76. }
Advertisement
Add Comment
Please, Sign In to add comment