Guest User

Untitled

a guest
Jun 18th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 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. if(temp2[b] < great)
  18. this.swaps[1]++;
  19.  
  20. mergeArray[k] = temp2[b];
  21. b++;
  22. }
  23. }
  24.  
  25. while(a <= middle-i){
  26. mergeArray[k] = temp1[a];
  27. a++;
  28. k++;
  29. }
  30. while(b < f-middle){
  31. if(temp2[b] < great)
  32. this.swaps[1]++;
  33.  
  34. mergeArray[k] = temp2[b];
  35. b++;
  36. k++;
  37. }
  38. }
  39.  
  40. private void mergeSort(int i, int j){
  41. if(i < j){
  42. int middle = (i+j)/2;
  43. this.mergeSort(i, middle);
  44. this.mergeSort(middle + 1, j);
  45. this.merge(i, middle, j);
  46. }
  47. }
  48.  
  49. public void mergeSort(){
  50. this.mergeSort(0, mergeArray.length - 1);
  51. /*for(int k = 0; k < mergeArray.length; k++)
  52. System.out.print(mergeArray[k] + " ");
  53. System.out.println();*/
  54. }
Add Comment
Please, Sign In to add comment