Guest User

Untitled

a guest
Jun 18th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.88 KB | None | 0 0
  1. private void merge(int i, int middle, int f){
  2. int[] temp1 = new int[middle-i+1];
  3. int[] temp2 = new int[f-middle];
  4.  
  5. for(int h = middle; h >= i; h--)
  6. temp1[h-i] = mergeArray[h];
  7.  
  8. for(int h = f; h > middle; h--)
  9. temp2[h-middle-1] = mergeArray[h];
  10.  
  11. int a, b, k;
  12. for(k = i, a = 0, b = 0; (k < f) && (a <= middle-i) && (b < f-middle); k++){
  13. if(temp1[a] < temp2[b]){
  14. mergeArray[k] = temp1[a];
  15. a++;
  16. }else{
  17. mergeArray[k] = temp2[b];
  18. b++;
  19. }
  20. }
  21.  
  22. while(a <= middle-i){
  23. mergeArray[k] = temp1[a];
  24. a++;
  25. k++;
  26. }
  27. while(b < f-middle){
  28. mergeArray[k] = temp2[b];
  29. b++;
  30. k++;
  31. }
  32. }
  33.  
  34. private void mergeSort(int i, int j){
  35. if(i < j){
  36. int middle = (i+j)/2;
  37. this.mergeSort(i, middle);
  38. this.mergeSort(middle + 1, j);
  39. this.merge(i, middle, j);
  40. }
  41. }
  42.  
  43. public void mergeSort(){
  44. this.mergeSort(0, mergeArray.length - 1);
  45. }
Add Comment
Please, Sign In to add comment