Advertisement
Guest User

Untitled

a guest
Nov 27th, 2015
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.91 KB | None | 0 0
  1.  
  2. public class Mergesort {
  3.  
  4. public void mergesort(int[] array)
  5. {
  6. mergesort(array, 1, array.length);
  7. }
  8.  
  9. public void mergesort(int[] array, int p, int r)
  10. {
  11. if(p < r)
  12. {
  13. int q = (p + r)/2;
  14. mergesort(array, p, q);
  15. mergesort(array, q + 1, r);
  16. merge(array, p, q, r);
  17. }
  18. }
  19.  
  20. public void merge(int[] array, int p, int q, int r)
  21. {
  22. int n = q - p + 1;
  23. int m = r - q;
  24. int[] leftArray = new int[n + 1];
  25. int[] rightArray = new int[m + 1];
  26. for(int i = 1; i < n; i++)
  27. {
  28. leftArray[i] = array[p + i - 1];
  29. }
  30. for(int j = 1; j < m; j++)
  31. {
  32. rightArray[j] = array[q + j];
  33. }
  34.  
  35. leftArray[n + 1] = -1;
  36. rightArray[m + 1] = -1;
  37. int i = 1;
  38. int j = 1;
  39. for(int k = p; k < r; k++)
  40. {
  41. if(leftArray[i] <= rightArray[j])
  42. {
  43. array[k] = leftArray[i];
  44. i = i + 1;
  45. }
  46. else
  47. {
  48. array[k] = rightArray[j];
  49. j = j + 1;
  50. }
  51. }
  52. }
  53.  
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement