Advertisement
rafid_h

marge_sort

Nov 17th, 2019
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. #include<stdlib.h>
  2. #include<stdio.h>
  3.  
  4. void merge(int arr[], int p, int q, int r)
  5. {
  6. int i, j, k;
  7. int n1 = q - p + 1;
  8. int n2 = r - q;
  9.  
  10. int L[n1+1], R[n2+1];
  11.  
  12. for (i = 0; i < n1; i++)
  13. L[i] = arr[p + i];
  14.  
  15. for (j = 0; j < n2; j++)
  16. R[j] = arr[q + 1+ j];
  17.  
  18. i = 0;
  19. j = 0;
  20.  
  21. for(k = p; k <= r; k++){
  22.  
  23. if (L[i] <= R[j])
  24. {
  25. arr[k] = L[i];
  26. i++;
  27. }
  28. else
  29. {
  30. arr[k] = R[j];
  31. j++;
  32. }
  33. }
  34.  
  35. }
  36.  
  37.  
  38. void mergeSort(int arr[], int p, int r)
  39. {
  40. if (p < r)
  41. {
  42. int q = p+(r-p)/2;
  43. mergeSort(arr, p, q);
  44. mergeSort(arr, q+1, r);
  45. merge(arr, p, q, r);
  46. }
  47. }
  48.  
  49.  
  50. int main()
  51. {
  52. int arr[20],n,i;
  53. scanf("%d", &n);
  54. for(i=0; i<n; i++)
  55. {
  56. scanf("%d",&arr[i]);
  57. }
  58.  
  59. //Calling MergeSort Function
  60. mergeSort(arr, 0, n - 1);
  61.  
  62.  
  63. printf("\nSorted array: \n");
  64.  
  65. for(i=0; i<n; i++)
  66. {
  67. printf("%d ",arr[i]);
  68. }
  69.  
  70. return 0;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement