fork download
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. void merge(int arr[], int left, int mid, int right)
  6. {
  7. int i, j, k;
  8. int n1 = mid - left + 1;
  9. int n2 = right - mid;
  10. int L_arr[n1], R_arr[n2];
  11. for(i = 0; i < n1; i++)
  12. L_arr[i] = arr[left + i];
  13. for(j = 0; j < n2; j++)
  14. R_arr[j] = arr[mid + 1+ j];
  15. i = 0;
  16. j = 0;
  17. k = left;
  18. while (i < n1 && j < n2)
  19. {
  20. if (L_arr[i] <= R_arr[j])
  21. {
  22. arr[k] = L_arr[i];
  23. i++;
  24. }
  25. else
  26. {
  27. arr[k] = R_arr[j];
  28. j++;
  29. }
  30. k++;
  31. }
  32. // filling out the rest of the elements of L_arr and R_arr into the array.
  33. while (i < n1)
  34. {
  35. arr[k] = L_arr[i];
  36. i++;
  37. k++;
  38. }
  39. while (j < n2)
  40. {
  41. arr[k] = R_arr[j];
  42. j++;
  43. k++;
  44. }
  45. }
  46.  
  47. /* left is for left index and right is right index of the sub-array
  48.   of arr to be sorted */
  49. void mergeSort(int arr[], int left, int right)
  50. {
  51. if (left < right)
  52. {
  53. int mid = left+(right-left)/2;
  54. mergeSort(arr, left, mid);
  55. mergeSort(arr, mid+1, right);
  56. merge(arr, left, mid, right);
  57. }
  58. }
  59.  
  60. int main()
  61. {
  62.  
  63. return 0;
  64. }
Success #stdin #stdout 0s 2680KB
stdin
Standard input is empty
stdout
Standard output is empty