学习分享
快速排序数组
void quick_sort(int q[], int l, int r)
{
if (l >= r) return;
int i = l - 1, j = r + 1, x = q[l + r >> 1];
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);
}
- 功能
这个代码可以让我们快速排序 - 部分代码含义以及代码运行
其中l+r>>的意思是取l+r的中位数,通过比较l+r/2两边的数从而对整个数组的元素进行排序可以让数组中较大的元素换位到数组前部分 - 使用方法
用了do while语句和swap方法