fork download
  1. import java.util.*;
  2. import java.lang.*;
  3. import java.io.*;
  4.  
  5.  
  6. final class number {
  7. //базовая сортировка слиянием(MERGE SORT)
  8. public static void msort(int[] a) throws OutOfMemoryError {
  9. if(a.length > 0){
  10. int[] t = new int[a.length];
  11. merge_sort(a, t, 0, a.length - 1);
  12. t = null;
  13. }
  14. }
  15.  
  16. //рекурсивная разделяющея функция
  17. private static void merge_sort(int[] a, int[] t, int l, int r){
  18. if(r > l){
  19. int m = (l + r) / 2;
  20. merge_sort(a, t, l, m);
  21. merge_sort(a, t, m + 1, r);
  22. merge(a, t, l, m, r);
  23. }
  24. }
  25.  
  26. //слияние пар
  27. private static void merge(int[] a, int[] t, int l, int m, int r){
  28. int i, j;
  29. for(i = m + 1; i > l; --i)
  30. t[i - 1] = a[i - 1];
  31.  
  32. for(j = m; j < r; ++j)
  33. t[r + m - j] = a[j + 1];
  34.  
  35. for(int k = l; k <= r; ++k){
  36. if(t[j] < t[i])
  37. a[k] = t[j--];
  38. else
  39. a[k] = t[i++];
  40. }
  41. }
  42. }
  43.  
  44.  
  45. class Cyberforum {
  46. public static void main (String[] args){
  47. int[] arr = new int [] { 6, 4, 7, 0, 2, 9, 3, -3, 2, 0, 1, 8 };
  48. number.msort(arr);
  49. for(int n : arr){
  50. System.out.print(n + " ");
  51. }
  52. }
  53. }
Success #stdin #stdout 0.1s 320256KB
stdin
Standard input is empty
stdout
-3 0 0 1 2 2 3 4 6 7 8 9