fork download
  1. import java.util.*;
  2.  
  3. public class Main {
  4. static int[] result;
  5.  
  6. public static void mergeSort(int left, int right, int[] arr) {
  7. int mid;
  8. if (left < right) {
  9. mid = (left + right) / 2;
  10. mergeSort(left, mid, arr);
  11. mergeSort(mid + 1, right, arr);
  12. merge(left, right, mid, arr);
  13. }
  14. }
  15.  
  16. public static void merge(int left, int right, int mid, int[] arr) {
  17. int l = left;
  18. int m = mid + 1;
  19. int k = left;
  20.  
  21. while(l <= mid || m <= right) {
  22. if(l <= mid && m <= right) {
  23. if(arr[l] <= arr[m]) {
  24. result[k] = arr[l];
  25. l++;
  26. }
  27. else {
  28. result[k] = arr[m];
  29. m++;
  30. }
  31. }
  32.  
  33. else if(l <= mid && m > right) {
  34. result[k] = arr[l];
  35. l++;
  36. }
  37. else {
  38. result[k] = arr[m];
  39. m++;
  40. }
  41. k++;
  42. }
  43.  
  44. for(int i = left; i <= right; i++) {
  45. arr[i] = result[i];
  46. }
  47.  
  48.  
  49. }
  50.  
  51. public static void main(String[] args) {
  52. Scanner sc = new Scanner(System.in);
  53. int n = sc.nextInt();
  54. result = new int[n];
  55. int[] arr = new int[n];
  56.  
  57. for(int i = 0; i < n; i++) {
  58. arr[i] = sc.nextInt();
  59. }
  60.  
  61. mergeSort(0, n-1, arr);
  62.  
  63. for(int i : arr) {
  64. System.out.println(arr);
  65. }
  66.  
  67. sc.close();
  68. }
  69. }
  70.  
Success #stdin #stdout 0.12s 29380KB
stdin
5
5
4
3
2
1
stdout
[I@330bedb4
[I@330bedb4
[I@330bedb4
[I@330bedb4
[I@330bedb4