Advertisement
aguswahyuapg

Untitled

Dec 19th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.72 KB | None | 0 0
  1. package com.undiksha.mergesort;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class Belajar {
  6.  
  7.  
  8. void merge(int arr[], int l, int m, int r)
  9. {
  10. // Find sizes of two subarrays to be merged
  11. int n1 = m - l + 1;
  12. int n2 = r - m;
  13.  
  14. /* Create temp arrays */
  15. int L[] = new int [n1];
  16. int R[] = new int [n2];
  17.  
  18. /*Copy data to temp arrays*/
  19. for (int i=0; i<n1; ++i)
  20. L[i] = arr[l + i];
  21. for (int j=0; j<n2; ++j)
  22. R[j] = arr[m + 1+ j];
  23.  
  24.  
  25. /* Merge the temp arrays */
  26.  
  27. // Initial indexes of first and second subarrays
  28. int i = 0, j = 0;
  29.  
  30. // Initial index of merged subarry array
  31. int k = l;
  32. while (i < n1 && j < n2)
  33. {
  34. if (L[i] <= R[j])
  35. {
  36. arr[k] = L[i];
  37. i++;
  38. }
  39. else
  40. {
  41. arr[k] = R[j];
  42. j++;
  43. }
  44. k++;
  45. }
  46.  
  47. /* Copy remaining elements of L[] if any */
  48. while (i < n1)
  49. {
  50. arr[k] = L[i];
  51. i++;
  52. k++;
  53. }
  54.  
  55. /* Copy remaining elements of R[] if any */
  56. while (j < n2)
  57. {
  58. arr[k] = R[j];
  59. j++;
  60. k++;
  61. }
  62. }
  63.  
  64. // Main function that sorts arr[l..r] using
  65. // merge()
  66. void sort(int arr[], int l, int r)
  67. {
  68. if (l < r)
  69. {
  70. // Find the middle point
  71. int m = (l+r)/2;
  72.  
  73. // Sort first and second halves
  74. sort(arr, l, m);
  75. sort(arr , m+1, r);
  76.  
  77. // Merge the sorted halves
  78. merge(arr, l, m, r);
  79. }
  80. }
  81.  
  82.  
  83.  
  84.  
  85. public static void main(String[] args)
  86. {
  87. Scanner scanner = new Scanner(System.in);
  88. System.out.print("Masukan Panjang Array : ");
  89. int panjangArray = scanner.nextInt();
  90.  
  91. int[] array = new int[panjangArray];
  92.  
  93. //memasukan nilai ke semua element array
  94. System.out.println("Masukan nilai di setiap element array");
  95. for(int i=0;i<panjangArray;i++)
  96. {
  97. array[i] = scanner.nextInt();
  98. }
  99.  
  100. //menampilkan semua element array yang barus aja dimasukan
  101. System.out.println("Array yang baru saja dimasukan");
  102. for(int i=0;i<panjangArray;i++)
  103. {
  104. System.out.print(array[i]+" ");
  105. }
  106. Belajar sort = new Belajar();
  107. sort.sort(array, 0, panjangArray-1);
  108.  
  109. System.out.println("\nArray yang sudah terurut");
  110. for(int i=0;i<panjangArray;i++)
  111. {
  112. System.out.print(array[i]+" ");
  113. }
  114.  
  115.  
  116.  
  117.  
  118. }
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement