public class PaiXuQuick {
public static void sort(int data[], int left, int right) {
int rr = right;
int base = data[left];
int ll = left;
while (ll < rr) {
while (ll < rr && base > data[rr]) {
rr--;
}
if (ll < rr) {
data[ll] = data[ll] + data[rr];
data[rr] = data[ll] - data[rr];
data[ll] = data[ll] - data[rr];
ll++;
System.out.println("base=" + base + "一次转换:");
for (int i = 0; i < data.length; i++) {
System.out.print(data[i] + " ");
}
System.out.println();
}
while (ll < rr && base < data[ll]) {
ll++;
}
if (ll < rr) {
data[rr] = data[rr] + data[ll];
data[ll] = data[rr] - data[ll];
data[rr] = data[rr] - data[ll];
rr--;
System.out.println("base=" + base + "一次转换:");
for (int i = 0; i < data.length; i++) {
System.out.print(data[i] + " ");
}
System.out.println();
}
}
System.out.println("base=" + base + "的输出结果:");
for (int i = 0; i < data.length; i++) {
System.out.print(data[i] + " ");
}
System.out.println("\n----------------------------------------");
if (left < ll) {
sort(data, left, ll - 1);
}
if (right > rr) {
sort(data, rr + 1, right);
}
}
public static void main(String[] args) {
int data[] = {78, 65, 39, 74, 82, 61, 84, 73, 49, 72};
sort(data, 0, data.length - 1);
for (int i = 0; i < data.length; i++) {
System.out.print(data[i] + " ");
}
System.out.println();
}
}
快速排序的小栗子
最新推荐文章于 2020-06-29 11:49:00 发布