## 基本思想 :分治
例如:
3(i=0) 1 7 9 8(j=n-1)
我们选取随机值如果为3,然后i++,j- -去判断与随机值的大小比较
—>1 3 7 9 8
然会在重复该过程,但是要注意边界问题
----------
## 代码模板
void quick_sort(int q[], int l, int r)
{
if (l >= r) return;// 判断排序的数字长度
int i = l - 1, j = r + 1, x = q[l];
//选取双指针i,j与 中间随机值
while (i < j)
{
//进行判断比较大小并交换值
do i ++ ; while (q[i] < x);
do j -- ; while (q[j] > x);
if (i < j) swap(q[i], q[j]);
//注意!!!使用语言有没有swap方法(如果没有建议用位运算)
else break;
}
//再将俩个部分(小于等于随机值||大于小于随机值)再次划分
quick_sort(q, l, j),;
quick_sort(q, j + 1, r);
}
----------
如果不理解,可以去理解一下分治,看一下yxc大佬的分享
----------