排序算法总结

比较经典的一种快速排序实现

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
35
36
37
public class quiksort {
public static void main(String args[]){
quiksort qs = new quiksort();
int[] list = new int[]{1};
qs.quicksort(list, 0, list.length - 1 );
for (int i = 0; i < list.length; i++){
System.out.print(list[i] + " ");
}
}
private void quicksort(int[] list, int i, int j){
if (i < j){
int cu = partion(list, i, j);
quicksort(list, i, cu -1 );
quicksort(list, cu +1, j);
}
}

private int partion(int[] list, int i, int j){
int x = list[j];
int cu = i - 1;
for (int tmp = i; tmp < j; tmp ++){
if (list[tmp] < x){
cu++;
swap(list, cu, tmp);
}
}
cu++;
swap(list, cu, j);
return cu;
}

private void swap(int[] list, int i, int j){
int tmp = list[i];
list[i] = list[j];
list[j] = tmp;
}
}