快速排序

题目链接

快速排序板子题,练习快速排序的代码,下面是排序算法的一些对比

快速排序的思路图

快速排序的代码

#include <iostream>
using namespace std;
const int N = 1e5 + 10;
int q[N];
int quick_sort(int q[], int l, int r)
{
    if (l >= r) return 0;
    else
    {
        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);
        return 0;
    }
}
int main()
{
    int n;
    scanf("%d", &n);
    for (int i = 0; i < n; i ++) scanf("%d", &q[i]);
    quick_sort(q, 0, n - 1);
    for (int i = 0; i < n; i ++) printf("%d ", q[i]);
    return 0;
}
posted @ 2022-07-11 13:14  LYL233  阅读(28)  评论(0)    收藏  举报