package Cap2_3;
import edu.princeton.cs.introcs.StdRandom;
import Cap2_1.sortTemplate;
public class Quick3way extends sortTemplate{
public static void sort(Comparable[] a){
StdRandom.shuffle(a);
sort(a, 0, a.length-1);
}
public static void sort(Comparable[] a, int lo, int hi){
if(hi <= lo) return;
int lt = lo, i = lo + 1, gt = hi;
Comparable v = a[lo];
while(i <= gt){
show(a);
int cmp = a[i].compareTo(v);
if (cmp<0) exch(a, i++, lt++);
else if (cmp>0) exch(a, i, gt--);
else i++;
}
sort(a, lo, lt-1);
sort(a, gt+1, hi); //重复部分不用管了;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String a = "AAAAAAAAABBBBBBBBBBB";
String[] b = a.split("");
StdRandom.shuffle(b);
sort(b);
// show(b);
}
}
算法 第四版 2.3.5
最新推荐文章于 2021-10-27 12:21:02 发布