Guest User

Untitled

a guest
Apr 24th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.49 KB | None | 0 0
  1. import java.util.Arrays;
  2.  
  3.  
  4. public class MergeSort {
  5.  
  6.     /**
  7.      * @param args
  8.      */
  9.     int binarySearch(int v, int[] list, int left, int right){
  10.         if(left > right) return -1;
  11.         int m = (left+right)/2;
  12.         if(list[m] == v) return m;
  13.         if(list[m] > v) return binarySearch(v, list, 0, m-1);
  14.         /*if(list[m] < v)*/ return binarySearch(v, list, m+1, right);
  15.     }
  16.     public static int[] mergeSort(int[] list){
  17.         if(list.length <= 1) return list;
  18.         int m=list.length/2;
  19.         int[] left = Arrays.copyOfRange(list, 0,m);
  20.         int[] right = Arrays.copyOfRange(list, m, list.length);
  21.         left = mergeSort(left);
  22.         right = mergeSort(right);
  23.         return merge(left, right);
  24.     }
  25.     public static int[] merge(int[] left, int[] right){
  26.         int l = left.length + right.length;
  27.         int[] result = new int[l];
  28.         int curr=0;
  29.         while(left.length > 0 && right.length > 0){
  30.             if(left[0] < right[0]){
  31.                 result[curr] = left[0];
  32.                 left = Arrays.copyOfRange(left, 1,left.length);
  33.             }
  34.             else{
  35.                 result[curr] = right[0];
  36.                 right = Arrays.copyOfRange(right, 1, right.length);
  37.             }
  38.             curr++;
  39.         }
  40.         while(left.length > 0){
  41.             result[curr] = left[0];
  42.             left = Arrays.copyOfRange(left, 1,left.length);
  43.             curr++;
  44.         }
  45.         while(right.length > 0){
  46.             result[curr] = right[0];
  47.             right = Arrays.copyOfRange(right, 1, right.length);
  48.             curr++;
  49.         }
  50.         return result;
  51.     }
  52.     public static void main(String[] args) {
  53.         System.out.println(Arrays.toString(mergeSort(new int[]{100, 29,33,1,243,21,1233,112,1,1,1,1,333,11,1234})));
  54.  
  55.     }
  56.  
  57. }
Add Comment
Please, Sign In to add comment