Good, better, best. Never let it rest.

Java语言实现快排

粘贴代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
快排算法:
public static void quickSort(int[] arr, int low, int high) {
// 递归设置终止条件,当只有一个元素时
if (low >= high) {
return;
}
int i, j, tmp, t;
i = low;
j = high;
// 设置基准位
tmp = arr[low];

while (i < j) {
// 先从右边比较,满足条件则向左移动
while (arr[j] >= tmp && i<j) {
j--;
}
// 从左边比较,满足条件则向右移动
while (arr[i] <= tmp && i<j) {
i++;
}
// 上面2个while条件都不满足时,交换左右数据
if (i<j) {
t = arr[j];
arr[j] = arr[i];
arr[i] = t;
}
}
// i==j时,和基准位交换位置
arr[low] = arr[i];
arr[i] = tmp;
quickSort(arr, low, i-1);
quickSort(arr,i+1, high);
}