Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

48 рядки
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. }
  19. for (j = q + 1; j <= r; j++) {
  20. arr[r + q + 1 - j] = intArr[j];
  21. }
  22. i = l;
  23. j = r;
  24. for (int k = l; k <= r; k++) {
  25. if (arr[i] <= arr[j]) {
  26. intArr[k] = arr[i];
  27. i++;
  28. } else {
  29. intArr[k] = arr[j];
  30. j--;
  31. }
  32. }
  33. }
  34. public static void main(String[] args) {
  35. Mergesort ms = new Mergesort();
  36. int[] arr = ms.sort(0, intArr.length - 1);
  37. for (int i = 0; i < arr.length; i++) {
  38. System.out.println(i + 1 + ": " + arr[i]);
  39. }
  40. }
  41. }