Guest User

Untitled

a guest
Jan 13th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.50 KB | None | 0 0
  1. package model;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. public class MergeSort {
  7.  
  8. public List<Double> sort(List<Double> unsorted) {
  9. List<Double> left, right, sorted;
  10.  
  11. if (unsorted.size() <= 1) {
  12. return unsorted;
  13.  
  14. } else {
  15. left = unsorted.subList(0, unsorted.size()/2);
  16. right = unsorted.subList(unsorted.size()/2, unsorted.size());
  17. left = sort(left);
  18. right = sort(right);
  19. }
  20.  
  21. sorted = merge(left, right);
  22. return sorted;
  23. }
  24.  
  25. private List<Double> merge(List<Double> left, List<Double> right) {
  26. List<Double> merge = new ArrayList<Double>();
  27. int i = 0, j = 0;
  28.  
  29. while(i < left.size() || j < right.size()) {
  30.  
  31. if(i < left.size() && j < right.size()) {
  32. if (left.get(i).compareTo(right.get(j)) < 0) {
  33. merge.add(left.get(i++));
  34. } else {
  35. merge.add(right.get(j++));
  36. }
  37. } else if (i < left.size()) {
  38. merge.add(left.get(i++));
  39.  
  40. } else if(j < right.size()) {
  41. merge.add(right.get(j++));
  42. }
  43.  
  44. }
  45.  
  46. return merge;
  47.  
  48. }
  49.  
  50. public static void main(String[] args) {
  51.  
  52. List<Double> inputList = new ArrayList<Double>();
  53. for (int i = 0; i < 100; i++) {
  54. inputList.add((1 + Math.random())*(1 + Math.random()));
  55. }
  56.  
  57.  
  58. System.out.println("INPUT SIZE: " + inputList.size() + "\n");
  59.  
  60. MergeSort mergeSort = new MergeSort();
  61. inputList = mergeSort.sort(inputList);
  62. System.out.println("SORTED LIST:");
  63. for(Double d : inputList) {
  64. System.out.println(d);
  65. }
  66.  
  67.  
  68. }
  69.  
  70. }
Add Comment
Please, Sign In to add comment