fork download
  1. import java.util.*;
  2. import java.lang.*;
  3. import java.io.*;
  4. class Ideone {
  5. public static int c = 0;
  6. public static void mergeSort(int l1[], int low, int mid, int high) {
  7. //static int c = 0;
  8. int n1 = mid - low + 1;
  9. int n2 = high - mid;
  10.  
  11. int L[] = new int[n1];
  12. int R[] = new int[n2];
  13.  
  14. for(int i = 0;i < n1;i++)
  15. L[i] = l1[low + i];
  16.  
  17. for(int i = 0;i < n2;i++)
  18. R[i] = l1[mid + 1 + i];
  19.  
  20. int i = 0, j = 0, k = low;
  21. while(i < n1 && j < n2) {
  22. if(L[i] <= R[j]) {
  23. l1[k] = L[i];
  24. i += 1;
  25. c += 1;
  26. }
  27. else {
  28. l1[k] = R[j];
  29. j += 1;
  30. c += 1;
  31. }
  32. k += 1;
  33. }
  34. while(i < n1) {
  35. l1[k] = L[i];
  36. i += 1;
  37. k += 1;
  38. }
  39. while(j < n2) {
  40. l1[k] = R[j];
  41. j += 1;
  42. k += 1;
  43. }
  44. System.out.println(c);
  45. //return c;
  46. }
  47.  
  48. public static void sort(int l1[], int low, int high) {
  49. if(low < high) {
  50. int mid = (low + high) / 2;
  51. sort(l1, low, mid);
  52. sort(l1, mid + 1, high);
  53.  
  54. mergeSort(l1, low, mid, high);
  55. }
  56. }
  57.  
  58. public static void main (String[] args) {
  59. int l1[] = {3, 4, 1, 7, 22, 8, 34};
  60. sort(l1, 0, l1.length - 1);
  61. for(int i = 0;i < l1.length;i++)
  62. System.out.print(l1[i] + " ");
  63. }
  64. }
Success #stdin #stdout 0.14s 47864KB
stdin
Standard input is empty
stdout
1
2
5
6
8
12
1 3 4 7 8 22 34