nurzain-pradana

MergeSort

Nov 8th, 2025 (edited)
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.75 KB | None | 0 0
  1. public class MergeSort {
  2.  
  3. void merge(int arr[], int l, int m, int r) {
  4. int n1 = m - l + 1;
  5. int n2 = r - m;
  6.  
  7. int L[] = new int[n1];
  8. int R[] = new int[n2];
  9.  
  10. for (int i = 0; i < n1; i++)
  11. L[i] = arr[l + i];
  12.  
  13. for (int j=0; j < n2; j++)
  14. R[j] = arr[m + 1 + j];
  15.  
  16. int i = 0, j = 0;
  17. int k = l;
  18.  
  19. while ( i < n1 && j < n2){
  20. if(L[i] <= R[j])
  21. {
  22. arr[k] = L[i];
  23. i++;
  24. } else {
  25. arr[k] = R[j];
  26. j++;
  27. }
  28. k++;
  29. }
  30.  
  31. while (i < n1)
  32. {
  33. arr[k] = L[i];
  34. i++;
  35. k++;
  36. }
  37.  
  38.  
  39. while (j < n2)
  40. {
  41. arr[k] = R[j];
  42. j++;
  43. k++;
  44. }
  45. }
  46.  
  47.  
  48. void sort(int arr[], int l, int r) {
  49. if (l < r)
  50. {
  51. int m = (l+r) / 2;
  52.  
  53. sort(arr, l, m);
  54. sort(arr, m+1, r);
  55.  
  56. merge(arr, l, m, r);
  57. }
  58. }
  59.  
  60.  
  61. static void printArray(int arr[]){
  62. int n = arr.length;
  63. for(int i=0; i < n; i++)
  64. {
  65. System.out.print(arr[i] + " ");
  66. }
  67.  
  68. System.out.println();
  69.  
  70.  
  71. }
  72.  
  73. public static void main(String[] args) {
  74. int arr[] = {12,11,13,5,6,7};
  75.  
  76. System.out.println("Given Array");
  77. printArray(arr);
  78.  
  79. MergeSort ob = new MergeSort();
  80. ob.sort(arr, 0, arr.length - 1);
  81.  
  82. System.out.println("\nSorted Array");
  83. printArray(arr);
  84.  
  85. }
  86.  
  87. }
Advertisement
Add Comment
Please, Sign In to add comment