From Blush Crane, 9 Months ago, written in Plain Text.
This paste is a reply to Untitled from Perl Motmot - 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};
  6.                 mergeSort(a);
  7.         }
  8.         public static int[] merge(int[] a, int[] b){
  9.                 int dim1 = a.length;
  10.                 int dim2 = b.length;
  11.                 int[] aux = new int[dim1 + dim2];
  12.                 int i=0, j=0;
  13.                 for(int x=0;x<aux.length;x++){
  14.                         if(i<dim1 && j<dim2){
  15.                                 if(a[i] <b[j]) aux[x] = a[i++];
  16.                                         else aux[x] = b[j++];
  17.                         }else if(!(i<dim1) && j<dim2) aux[x] = b[j++];
  18.                                 else if(i<dim1 && !(j<dim2)) aux[x] = a[i++];
  19.                 }
  20.                 return aux;
  21.         }
  22.  
  23.         public static void mergeSort(int[] a){
  24.                 if(a.length<=1) return;
  25.  
  26.                 int[] firstHalf = divide(a,0,a.length/2);
  27.                 mergeSort(firstHalf);
  28.                 int[] secondHalf = divide(a,a.length/2, a.length);
  29.                 mergeSort(secondHalf);
  30.                 int[] merged = merge(firstHalf, secondHalf);
  31.                 print(merged); // <<---- i'm not sure about this one since it's recursive :( //
  32.         }
  33.         public static int[] divide(int[] a, int from, int to){
  34.  
  35.                 int[] aux = new int[to - from];
  36.                 for(int i=0;i<aux.length;i++){
  37.                         aux[i] = a[from + i];
  38.                 }
  39.                 return aux;
  40.         }
  41.         public static void print(int[] a){
  42.                 for(int i=0;i<a.length;i++){
  43.                         System.out.println(a[i]);
  44.                 }
  45.         }
  46. }