public class FastSort {
public static void main(String[] args) {
int[] array = new int[] { 3, 5, 7, 2, 11, 6, 1, 3, 8, 4, 10, 12 };
fastSort(array, 0, array.length - 1);
print(array);
}
private static void fastSort(int[] array, int l, int r) {
if (l > r) {
return;
}
int low = l;
int high = r;
int key = array[l];
while (low < high) {
for (;; high--) {
if (high <= low) {
break;
}
if (array[high] < key) {
array[low] = array[high];
break;
}
}
for (;; low++) {
if (high <= low) {
break;
}
if (array[low] > key) {
array[high] = array[low];
break;
}
}
}
if (low == high) {
array[low] = key;
}
// print(array);
fastSort(array, 0, low - 1);
fastSort(array, low + 1, r);
}
private static void print(int[] array) {
for (int i : array) {
System.out.print(i + " ");
}
}
}