From Sweet Ibis, 9 Months ago, written in Plain Text.
This paste is a reply to Untitled from Coral Capybara - view diff
Embed
  1. public class MergeSort{
  2.  
  3.         public static void main(String[] args){
  4.  
  5.                 int[] a = {3,3,2,4,2,1,32,4,5,0};
  6.                 mergeSort(a);
  7.  
  8.  
  9.         }
  10.         public static int[] merge(int[] a, int[] b){
  11.                 int dim1 = a.length;
  12.                 int dim2 = b.length;
  13.                 int[] aux = new int[dim1 + dim2];
  14.                 int i=0, j=0;
  15.                 for(int x=0;x<aux.length;x++){
  16.                         if(i<dim1 && j<dim2){
  17.                                 if(a[i] <b[j]) aux[x] = a[i++];
  18.                                         else aux[x] = b[j++];
  19.                         }else if(!(i<dim1) && j<dim2) aux[x] = b[j++];
  20.                                 else if(i<dim1 && !(j<dim2)) aux[x] = a[i++];
  21.                 }
  22.                 print(aux);  //<--- moved it here //
  23.                 return aux;
  24.         }
  25.  
  26.         public static void mergeSort(int[] a){
  27.                 if(a.length<=1) return;
  28.  
  29.                 int[] firstHalf = divide(a,0,a.length/2);
  30.                 mergeSort(firstHalf);
  31.                 int[] secondHalf = divide(a,a.length/2, a.length);
  32.                 mergeSort(secondHalf);
  33.                 merge(firstHalf, secondHalf);
  34.  
  35.         }
  36.         public static int[] divide(int[] a, int from, int to){
  37.  
  38.                 int[] aux = new int[to - from];
  39.                 for(int i=0;i<aux.length;i++){
  40.                         aux[i] = a[from + i];
  41.                 }
  42.                 return aux;
  43.         }
  44.         public static void print(int[] a){
  45.                 for(int i=0;i<a.length;i++){
  46.                         System.out.println(a[i]);
  47.                 }
  48.         }
  49. }