fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. void fillArray(int array[], int n)
  6. {
  7. time_t t;
  8. time(&t);//get current time
  9. srand(t);//gives current time as seed for random number generator
  10.  
  11.  
  12. for(int i = 0; i < n; i++)
  13. {
  14. array[i] = rand()%(10*n);//Doing mod to avoid very large numbers
  15. }
  16. }
  17. void printArray(int array[], int n)
  18. {
  19. for(int i = 0; i < n; i++)
  20. {
  21. printf("%d ", array[i]);
  22. }
  23. }
  24. void mergeSort(int A[],int n){
  25. int i;
  26. int mid=n/2;
  27. int p=(n-mid);
  28.  
  29. int w=sizeof(A[mid]);
  30. int x=sizeof(A[p]);
  31. int Aleft[w];
  32. int Aright[x];
  33. for(i=0;i<(mid-1);i++){
  34. Aleft[i]=A[i];
  35. }
  36. for(i=mid;i<(n-1);i++){
  37. Aright[i-mid]=A[i];
  38. }
  39. mergeSort(Aleft,n/2);
  40. mergeSort(Aright,n/2);
  41. merge(Aleft,Aright,A);
  42.  
  43. }
  44.  
  45. void merge(int lArray[], int rArray[],int Array[])
  46. {
  47. int nL=sizeof(lArray);
  48. int nR=sizeof(rArray);
  49. int i=0;
  50. int j=0;
  51. int k=0;
  52. while((i<nL)&&(j<nR)){
  53. if(lArray[i]<=rArray[j]){
  54. Array[k]=lArray[i];
  55. i++;
  56. }
  57. else{
  58. Array[k]=rArray[j];
  59. j++;
  60. }
  61. k++;
  62. }
  63. }
  64. int main()
  65. {
  66. int *Array, n=8;
  67.  
  68. //int p=(n-mid);
  69.  
  70. clock_t start, end;
  71. double cpu_time_used;
  72.  
  73. //printf("Enter the no. of numbers: ");
  74. //scanf("%d", &n);
  75. Array = malloc(n * sizeof(int));
  76. //lArray = malloc(mid * sizeof(int));
  77. //rArray = malloc((n-mid) * sizeof(int));
  78. fillArray(Array, n);
  79. //fillArray(lArray, mid);
  80. //fillArray(rArray, p);
  81. start = clock();
  82.  
  83. mergeSort(Array,n);
  84.  
  85. end = clock();
  86.  
  87. cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC;
  88. printArray(Array, n);
  89. printf("\n \n Time taken for sorting: %f seconds\n\n",cpu_time_used);
  90. return 0;
  91. }
  92.  
Time limit exceeded #stdin #stdout 5s 8388607KB
stdin
Standard input is empty
stdout
Standard output is empty