quicksorter.java
来自「<设计模式-Java语言中的应用> 的源码」· Java 代码 · 共 34 行
JAVA
34 行
public class QuickSorter implements Sorter {
Comparable[] data;
public void sort(Comparable[] data) {
this.data = data;
qsort(0, data.length - 1);
}
private void qsort(int pre, int post) {
int saved_pre = pre;
int saved_post = post;
Comparable mid = data[(pre + post) / 2];
do {
while (data[pre].compareTo(mid) < 0) {
pre++;
}
while (mid.compareTo(data[post]) < 0) {
post--;
}
if (pre <= post) {
Comparable tmp = data[pre];
data[pre] = data[post];
data[post] = tmp;
pre++;
post--;
}
} while (pre <= post);
if (saved_pre < post) {
qsort(saved_pre, post);
}
if (pre < saved_post) {
qsort(pre, saved_post);
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?