publicstaticintpartition(Comparable[] a, int lo, int hi){ //定义左指针i,右指针j int i = lo, j = hi + 1; Comparable v = a[lo]; //循环移动指针 while (true) { //从左向右扫描 while (a[++i].compareTo(v) < 0) { if (i == hi) break; } //从右向左扫描 while (v.compareTo(a[--j]) < 0) { if (j == lo) break; } //两个指针相遇时,终止循环 if (i >= j) break; //交换指针i和指针j位置上的元素 exchange(a, i, j);