Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.81 KB | None | 0 0
  1. void mergeSort(int[] array, int low, int high){
  2. if(low < high){
  3. int middle = (low + high) / 2;
  4. mergeSort(array, low, middle);
  5. mergeSort(array, middle+1, high);
  6. merge(array, low, middle, high);
  7. }
  8. }
  9.  
  10. void merge(int[] array, int low, int middle, int high){
  11. int[] helper = new int[array.length];
  12. for (int i = low; i <= high; i++) {
  13. helper[i] = array[i];
  14. }
  15.  
  16. int helperLeft = low;
  17. int helperRight = middle+1;
  18. int current = low;
  19.  
  20. while (helperLeft <= middle && helperRight <=high) {
  21. if(helper[helperLeft] <= helper[helperRight]){
  22. array[current] = helper[helperLeft];
  23. helperLeft++;
  24.  
  25. }else{
  26. array[current] = helper[helperRight];
  27. helperRight++;
  28. }
  29. current ++;
  30. }
  31.  
  32. int remaining = middle - helperLeft;
  33. for (int i = 0; i <= remaining; i++) {
  34. array[current+i] = helper[helperLeft+ i];
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement