JHJiban

AL 02

Dec 7th, 2020
572
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.08 KB | None | 0 0
  1. //Jiban
  2. //192-15-13117
  3. #include<stdlib.h>
  4. void merge(int arr[], int l, int m, int r)
  5. {
  6. int i, j, k;
  7. int n1 = m - l + 1;
  8. int n2 = r - m;
  9. int Lt[n1], Rt[n2];
  10. for (i = 0; i < n1; i++)
  11. {
  12. Lt[i] = arr[l + i];
  13. }
  14. for (j = 0; j < n2; j++)
  15. {
  16. Rt[j] = arr[m + 1+ j];
  17. }
  18. i = 0;
  19. j = 0;
  20. k = l;
  21. while (i < n1 && j < n2)
  22. {
  23. if (Lt[i] <= Rt[j])
  24. {
  25. arr[k] = Lt[i];
  26. i++;
  27. }
  28. else
  29. {
  30. arr[k] = Rt[j];
  31. j++;
  32. }
  33. k++;
  34. }
  35. while (i < n1)
  36. {
  37. arr[k] = Lt[i];
  38. i++;
  39. k++;
  40. }
  41. while (j < n2)
  42. {
  43. arr[k] = Rt[j];
  44. j++;
  45. k++;
  46. }
  47. }
  48.  
  49. void mergeSort(int arr[], int l, int r)
  50. {
  51. if (l < r)
  52. {
  53. int m = l+(r-l)/2;
  54. mergeSort(arr, l, m);
  55. mergeSort(arr, m+1, r);
  56. merge(arr, l, m, r);
  57. }
  58. }
  59. void printArray(int A[], int size)
  60. {
  61. int i;
  62. for (i=0; i < size; i++)
  63. {
  64. printf("%d ", A[i]);
  65. }
  66. printf("\n");
  67. }
  68. int main()
  69. {
  70. int arr[1000], arr_size;
  71. printf("Enter Digit Number: ");
  72. scanf("%d", &arr_size);
  73. printf("Enter Elements of Array: ");
  74. for(int i = 0; i < arr_size; i++)
  75. {
  76. scanf("%d", &arr[i]);
  77. }
  78. mergeSort(arr, 0, arr_size - 1);
  79. printf("\nSorted Array is: ");
  80. printArray(arr, arr_size);
  81. return 0;
  82. }
  83.  
Advertisement
Add Comment
Please, Sign In to add comment