快速排序
a.确定一个基准值 (选择的数组首元素)
b.从右向左 找比基准值 小的值
c.从左往右 找比基准值 大的值
d.交换找到的两个值
e.重复 b ~ d ,直到 begin 与 end相遇 ,
将相遇位置的值 与 基准位置上的值交换
f.针对 比基准值小的一部分 继续快速排序
比基准值大的一部分 继续快速排序
141 void quickSort(int *begin,int *end)
142 {
143 int *p = begin;
144 int *q = end;
145 int *k = NULL;
146 if(begin >= end)
147 {
148 return;
149 }
150 k = begin;
151 while(begin < end)
152 {
153 while(begin < end && *end >= *k)
154 {
155 --end;
156 }
157 while(begin < end && *begin <= *k)
158 {
159 ++begin;
160 }
161 swap(begin,end);
162 }
163 swap(begin,k);
164 quickSort(p,end-1);
165 quickSort(begin+1,q);
166 }