import java.util.Random; class MergeSort { private static void merge(int a[], int st, int mid, int end) { int b[] = new int[end-st+1]; // No of elements merged array int x = st; // Index in a[st..mid] int y = mid + 1; // index in a[mid+1..end] int j = 0; // Index in array b while ((x <= mid) && (y <= end)) { if (a[x] < a[y]) b[j++] = a[x++]; else b[j++] = a[y++]; } while (x <= mid) b[j++] = a[x++]; while (y <= end) b[j++] = a[y++]; for (j=st; j<=end; j++) a[j] = b[j-st]; } private static void msort(int a[], int st, int end) { if (st == end) return; int mid = (st + end) / 2; msort(a, st, mid); msort(a, mid+1, end); merge(a, st, mid, end); } public static void sort(int a[]) { if (a == null) return; msort(a, 0, a.length-1); } } class SelSort { private static int smallestNumIndex(int a[], int st) { int i = st; int j; for (j = st+1; j> Size: " + i + " Time: " + t.getElapsedTime()+ " ms"); a = ArrayStuff.randomArray(i); t.start(); SelSort.sort(a); t.stop(); System.out.println("Selection Sort>> Size: " + i + " Time: " + t.getElapsedTime()+ " ms"); } } }