Skip to content

Instantly share code, notes, and snippets.

@thomashw
Created February 21, 2012 18:50
Show Gist options
  • Save thomashw/1878105 to your computer and use it in GitHub Desktop.
Save thomashw/1878105 to your computer and use it in GitHub Desktop.
Example of implementing merge sort.
import java.util.*;
public class MergeSort
{
public int[] a;
public MergeSort()
{
a = new int[] { 0, 6, 41, 54, 57, 874, 243, 324, 1, 23, 4, 69, 7, 104 };
}
public void mergesort( int lo, int hi )
{
if( lo < hi ) {
int m = (lo+hi)/2;
mergesort( lo, m );
mergesort( m+1, hi );
merge( lo, hi, m );
}
}
public void merge( int lo, int hi, int m )
{
int[] b = new int[a.length];
for( int i = 0; i < a.length; i++ )
b[i] = a[i];
int i = lo;
int j = m+1;
int k = lo;
while( i <= m && j <= hi ) {
if( b[i] <= b[j] )
a[k++] = b[i++];
else
a[k++] = b[j++];
}
while( i <= m )
a[k++] = b[i++];
System.out.println( Arrays.toString( a ));
}
public static void main( String[] args )
{
MergeSort ms = new MergeSort();
ms.mergesort( 0, ms.a.length - 1 );
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment