public static void println(int array[], int len) {// 打印数组。。
for (int i = 0; i < len; i++) {
System.out.print(array[i] + " ");
}
System.out.println();
}
public static void swap(int array[], int i, int j) {// 交换array[i],array[j]的值。
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
public static int partition(int array[], int low, int high) {// 划分过程的方法,low为最低端下标,high为最高端下标
// 基准点,即把这个数放到它应该在的位置。
// 什么是应该在的问题?即把它左边的数都小于等于它,右边的数都大于等于它。
int pv = array[low];// 用最低端的元素初始化基准。
while (low < high) {// 结束条件为low 和 high 交汇的时候。
while ((low < high) && (array[high] >= pv)) {// 如果array[high]比基准点大high--,否则不满足退出循环。
high--;// 为什么high--呢,因为该数大于等于基准点,的确应该在基准点左边。没错,所以可以high--,查看上一个数,是否也同样满足。
}