Quick Sort is one of best sorting algorithm to sort the numbers by finding the mid element and sorting them as indivudual section.
import java.util.Random; import java.util.Date; class QSortAlgorithm { static public void main(String args[]) { int n = Integer.parseInt(args[0]); int a[] = new int[n]; long time; initialize(a, n); System.out.println("Sorting "+n+" elements..."); time = (new Date()).getTime(); sort(a); time = (new Date()).getTime() - time; System.out.println("Sorted in "+time+" milliseconds."); } static void initialize(int a[], int n) { Random random; random = new Random(); for (int i=0; i < n; i++) { a[i] = random.nextInt(); } } static void sort(int a[], int lo0, int hi0) { int lo = lo0; int hi = hi0; if (lo >= hi) { return; } int mid = a[(lo + hi) / 2]; while (lo < hi) { while (lo<hi && a[lo] < mid) { lo++; } while (lo<hi && a[hi] >= mid) { hi--; } if (lo < hi) { int T = a[lo]; a[lo] = a[hi]; a[hi] = T; } } if (hi < lo) { int T = hi; hi = lo; lo = T; } sort(a, lo0, lo); sort(a, lo == lo0 ? lo+1 : lo, hi0); } static void sort(int a[]) { sort(a, 0, a.length-1); } }