public static void quickSort2(int[] data, int low, int high) {
		if (low < high) {
			int random = (int) (Math.random() * (high - low + 1)) + low;
			swap(data, random, low);
			int pivot = data[low];
			int i = low, j = high + 1;
			for (;;) {
				while (++i <= high && data[i] < pivot)
					;
				while (data[--j] > pivot)
					;
				if (i >= j)
					break;
				swap(data, i, j);
			}
			swap(data, low, j);

			quickSort2(data, low, j - 1);
			quickSort2(data, j + 1, high);
		}
	}