核心思想
- 确定个分界点
- 调整范围
- 递归处理左右两段
void quick_sort(int l, int r){
//递归,一定要有边界条件!
if(l>=r) return;
// 确定分界点,选取数组中间的数
int i = l-1;
int j = r+1;
int num = q[(i+j)/2];
// 将数组划分为左右两个部分
while(i<j){
do i++; while(q[i]<num);
do j--; while(q[j]>num);
if(i<j) swap(q[i],q[j]);
}
//递归处理左右两段
quick_sort(l,j);
quick_sort(j+1,r);
}