You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

49 lines
1.1 KiB

  1. public class Mergesort {
  2. public static int[] intArr = { 16, 23, 14, 7, 21, 20, 6, 1, 17, 13, 12, 9,
  3. 3, 19 };
  4. public int[] sort(int l, int r) {
  5. if (l < r) {
  6. int q = (l + r) / 2;
  7. sort(l, q);
  8. sort(q + 1, r);
  9. merge(l, q, r);
  10. }
  11. return intArr;
  12. }
  13. private void merge(int l, int q, int r) {
  14. int[] arr = new int[intArr.length];
  15. int i, j;
  16. for (i = l; i <= q; i++) {
  17. arr[i] = intArr[i];
  18. // seas
  19. }
  20. for (j = q + 1; j <= r; j++) {
  21. arr[r + q + 1 - j] = intArr[j];
  22. }
  23. i = l;
  24. j = r;
  25. for (int k = l; k <= r; k++) {
  26. if (arr[i] <= arr[j]) {
  27. intArr[k] = arr[i];
  28. i++;
  29. } else {
  30. intArr[k] = arr[j];
  31. j--;
  32. }
  33. }
  34. }
  35. public static void main(String[] args) {
  36. Mergesort ms = new Mergesort();
  37. int[] arr = ms.sort(0, intArr.length - 1);
  38. for (int i = 0; i < arr.length; i++) {
  39. System.out.println(i + 1 + ": " + arr[i]);
  40. }
  41. }
  42. }