private static <T extends Comparable<? super T>> void insertionSort(
			T[] a, int left, int right) {
		for (int p = left + 1; p <= right; p++) {
			T tmp = a[p];
			int j;

			for (j = p; j > left && tmp.compareTo(a[j - 1]) < 0; j--)
				a[j] = a[j - 1];
			a[j] = tmp;
		}
	}