1 public class Solution
2 {
3 public int getMiddle(int[] data, int left, int right)
4 {
5 int middle = data[left];
6
7 while(left < right)
8 {
9 while((left < right) && (middle <= data[right]))
10 {
11 right --;
12 }
13 data[left] = data[right];
14
15 while((left < right) && (middle >= data[left]))
16 {
17 left ++;
18 }
19 data[right] = data[left];
20 }
21
22 data[left] = middle;
23
24 return left;
25 }
26
27 public void quickSort(int[] data, int left, int right)
28 {
29 if(left < right)
30 {
31 int middle = getMiddle(data, left, right);
32
33 quickSort(data, left, middle - 1);
34
35 quickSort(data, middle + 1, right);
36 }
37 }
38
39 public void adapter(int[] data)
40 {
41 quickSort(data, 0, data.length - 1);
42 }
43
44 }