private int partition(Comparable[] arr, int lo, int hi) {
		Comparable tmp = arr[lo];
		int i = lo, j = hi + 1;
		while (true) {
			while (tmp.compareTo(arr[--j]) < 0) if (j == lo) break;
			while (tmp.compareTo(arr[++i]) > 0) if (i == hi) break;;
			if (i >= j) break;
			SortEverything.swap(arr, i, j);
		}
		SortEverything.swap(arr, j, lo);
		return j;
	}