Guest User

Untitled

a guest
Jan 13th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.06 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> list) {
  9. List<Double> left, right, result;
  10.  
  11. if (list.size() <= 1) {
  12. return list;
  13.  
  14. } else if(list.size() == 2){
  15. left = new ArrayList<Double>();
  16. left.add(list.get(0));
  17. right = new ArrayList<Double>();
  18. right.add(list.get(1));
  19.  
  20. } else {
  21. left = list.subList(0, list.size()/2);
  22. right = list.subList((list.size()/2), list.size());
  23. left = sort(left);
  24. right = sort(right);
  25. }
  26.  
  27. result = merge(left, right);
  28. return result;
  29. }
  30.  
  31. private List<Double> merge(List<Double> left, List<Double> right) {
  32. List<Double> merge = new ArrayList<Double>();
  33. while(left.size() > 0 || right.size() > 0) {
  34. if(left.size() > 0 && right.size() > 0) {
  35. if(left.get(0) < right.get(0)) {
  36. merge.add(left.get(0));
  37. left.remove(0);
  38. } else {
  39. merge.add(right.get(0));
  40. right.remove(0);
  41. }
  42. } else if (left.size() > 0) {
  43. merge.add(left.get(0));
  44. left.remove(0);
  45. } else if (right.size() > 0) {
  46. merge.add(right.get(0));
  47. right.remove(0);
  48. }
  49. }
  50. return merge;
  51.  
  52. }
  53.  
  54. public static void main(String[] args) {
  55.  
  56. List<Double> inputList = new ArrayList<Double>();
  57. inputList.add(Double.parseDouble("3"));
  58. inputList.add(Double.parseDouble("3.1415"));
  59. inputList.add(Double.parseDouble("4000.15"));
  60. inputList.add(Double.parseDouble("31337"));
  61. inputList.add(Double.parseDouble("455.455"));
  62. inputList.add(Double.parseDouble("666.6666666"));
  63. inputList.add(Double.parseDouble("6"));
  64. // inputList.add(Double.parseDouble("6"));
  65. // inputList.add(Double.parseDouble("8"));
  66. // inputList.add(Double.parseDouble("10"));
  67. inputList.add(Double.parseDouble("0.0"));
  68.  
  69.  
  70. System.out.println("INPUT SIZE: " + inputList.size() + "\n");
  71.  
  72. MergeSort mergeSort = new MergeSort();
  73. inputList = mergeSort.sort(inputList);
  74. System.out.println("\nSORTED LIST:");
  75. for(Double d : inputList) {
  76. System.out.println(d);
  77. }
  78.  
  79.  
  80. }
  81.  
  82. }
Add Comment
Please, Sign In to add comment