1 package POJ;
2
3 public class Main {
4
5 /**
6 *
7 * QuickSort
8 *
9 */
10 public static void main(String[] args) {
11 Main so = new Main();
12 int[] list = { 6, 4, 2, 3, 1, 5, 10, 4, 9, 8, 11, 7 };
13 int[] result=so.quickSort(list, 0, 11);
14 for(int i:result)
15 System.out.println(i);
16 }
17 public int[] quickSort(int[] list,int left,int right){
18 int index=partition(list,left,right);
19 if(left<index-1){
20 quickSort(list, left, index-1);
21 }
22 if(index<right){
23 quickSort(list, index, right);
24 }
25 return list;
26 }
27 private int partition(int[] list, int left, int right) {
28 // TODO Auto-generated method stub
29 int pivot=list[(left+right)/2];
30 while(left<=right){
31 while(list[left]<pivot)
32 left++;
33 while(list[right]>pivot)
34 right--;
35 if(left<=right){
36 swap(list,left,right);
37 left++;
38 right--;
39 }
40 }
41 return left;
42 }
43 private void swap(int[] list, int left, int right) {
44 // TODO Auto-generated method stub
45 int temp=list[left];
46 list[left]=list[right];
47 list[right]=temp;
48 }
49 }