Advertisement
Guest User

Untitled

a guest
Jul 17th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.93 KB | None | 0 0
  1. package com.codecool.mergesort;
  2.  
  3. public class MergeSortSecond {
  4.  
  5. public static void main(String[] args) {
  6. int[] testArray = {2,6,1,20,52,32,8};
  7.  
  8. printArray(mergeSort(testArray));
  9. }
  10.  
  11. private static void printArray(int[] array) {
  12. for (int i: array) {
  13. System.out.println(i);
  14. }
  15. }
  16.  
  17. private static int[] mergeSort(int[] arrayToSort) {
  18.  
  19. if (arrayToSort.length <= 1) {
  20. return arrayToSort;
  21. }
  22.  
  23. int midPointer = arrayToSort.length / 2;
  24.  
  25. int[] left = new int[midPointer];
  26. int[] right = new int[arrayToSort.length - midPointer];
  27.  
  28. for (int i = 0; i < midPointer; i ++) {
  29. left[i] = arrayToSort[i];
  30. }
  31.  
  32. for (int j = 0; j < right.length; j ++) {
  33. right[j] = arrayToSort[midPointer + j];
  34. }
  35.  
  36. int[] result;
  37.  
  38. left = mergeSort(left);
  39. right = mergeSort(right);
  40.  
  41. result = merge(left, right);
  42.  
  43. return result;
  44.  
  45. }
  46.  
  47. private static int[] merge(int[] left, int[] right) {
  48. int[] result = new int[left.length + right.length];
  49.  
  50. int leftPointer = 0;
  51. int rightPointer = 0;
  52. int resultPointer = 0;
  53.  
  54. while (leftPointer < left.length || rightPointer < right.length) {
  55. if (leftPointer < left.length && rightPointer < right.length) {
  56.  
  57. if (left[leftPointer] < right[rightPointer]) {
  58. result[resultPointer++] = left[leftPointer++];
  59. } else {
  60. result[resultPointer++] = right[rightPointer++];
  61. }
  62.  
  63. } else if (leftPointer < left.length) {
  64. result[resultPointer++] = left[leftPointer++];
  65. } else if (rightPointer < right.length) {
  66. result[resultPointer++] = right[rightPointer++];
  67. }
  68. }
  69.  
  70. return result;
  71.  
  72. }
  73.  
  74.  
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement