Guest User

Untitled

a guest
Dec 11th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.33 KB | None | 0 0
  1. package pkg;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. public class MergeSort {
  7.    
  8.     public static List<Integer> mergeSort(List<Integer> elements, boolean rev) {
  9.         int size = elements.size();
  10.         if(size == 1 || size == 0) return elements;
  11.         List<Integer> e1, e2;
  12.         if(size % 2 == 0) {
  13.             e1 = mergeSort(elements.subList(0, (size/2)), rev);
  14.             e2 = mergeSort(elements.subList(size/2, size), rev);           
  15.         } else {
  16.             e1 = mergeSort(elements.subList(0, (size/2) + 1), rev);
  17.             e2 = mergeSort(elements.subList((size/2) + 1, size), rev);         
  18.         }
  19.         List<Integer> ret = new ArrayList<Integer>();
  20.         int i = 0, j = 0;
  21.         while(i < e1.size() || j < e2.size()) {
  22.             if(i >= e1.size()) { ret.add(e2.get(j)); j++; }
  23.             else if(j >= e2.size()) { ret.add(e1.get(i)); i++; }
  24.             else {
  25.                 if(rev ? e1.get(i) < e2.get(j) : e1.get(i) > e2.get(j)) { ret.add(e2.get(j)); j++; }
  26.                 else { ret.add(e1.get(i)); i++; }
  27.             }
  28.         }
  29.         return ret;
  30.     }
  31.  
  32.     /**
  33.      * @param args
  34.      */
  35.     public static void main(String[] args) {
  36.         // TODO Auto-generated method stub
  37.         List<Integer> l = new ArrayList<Integer>();
  38.         l.add(10);
  39.         l.add(3);
  40.         l.add(1);
  41.         l.add(6);
  42.         l.add(9);
  43.         l.add(0);
  44.         l.add(2);
  45.         l.add(7);
  46.         l.add(5);
  47.         l.add(8);
  48.         l.add(4);
  49.         System.out.println(l.toString());
  50.         System.out.println(mergeSort(l, false).toString());
  51.        
  52.     }
  53.  
  54. }
Add Comment
Please, Sign In to add comment