[数据结构][Sort]Quick Sort

 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 }

 

posted @ 2017-08-30 09:42  StringBuilder  阅读(119)  评论(0)    收藏  举报