快速排序quick_sort
void swap(int a, int b)
{
int c = a;
a = b;
b = c;
}
void quick_sort(int q[], int l, int r)//L从0开始
{
if (l >= r)return;
int i = l - 1, j = r + 1, x = q[l + r >>1 ];//指针每次先往前跳再判断,so 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]);
}
quick_sort(q, l, j), quick_sort(q, j + 1, r);
}
快速排序