private void quickSort(E[] array, int low, int high) {
		if (high - low < 1)
			return;
		int i = low;
		int j = high;
		E temp = array[low];

		while (i != j) {
            // 找到右边数第一个小于枢纽元素的元素
            while (i < j && array[j].compareTo(temp) > 0)
                j--;
            if (i < j) {
                array[i] = array[j];
                i++;
            }

			// 找到左边数起第一个大于枢纽元素的元素
			while (i < j && array[i].compareTo(temp) <= 0)
				i++;
			if (i < j) {
				array[j] = array[i];
				j--;
			}

		}
		// 枢纽元素移到正确位置
		array[i] = temp;

		quickSort(array, low, i - 1);
		quickSort(array, i + 1, high);

	}