public class Test {
public static void main(String args[]) {
int i;
int R[] = { 4, 3, 8, 1, 5, 6, 2, 7 };
for (i = 0; i < 8; i++) {
System.out.print(R[i] + " ");
}
System.out.println();
Qs(R, 0, 7);
for (i = 0; i < 8; i++) {
System.out.print(R[i] + " ");
}
}
private static void Qs(int data[], int low, int high) {
int mid;
if (low < high) {
mid = Partition(data, low, high);
Qs(data, low, mid - 1);/* 递归调用 */
Qs(data, mid + 1, high);
}
}
private static int Partition(int[] data, int low, int high) {
int mid;
int d;
d = data[low];
mid = data[low];
while (low < high) {
while ((low < high) && (data[high] >= mid)) {
--high;
}
data[low] = data[high];
while ((low < high) && (data[low] < mid)) {
++low;
}
data[high] = data[low];
}
data[low] = d;
return low;
}
}
测试成功
java学习笔记(七)——排序算法
最新推荐文章于 2024-07-19 19:57:45 发布