快排-c 实现

#include <iostream>
#include <algorithm>
#include <cstring>

using namespace std;

const int N=100010;
int a[N];
int n;

void quick_sort(int l,int r)
{
    if(l>=r)
    return ;
    int i=l-1,j=r+1,x=a[(l+r>>1)];
    while(i<j)
    {
        do i++;while(a[i]<x);
        do j--;while(a[j]>x);

        if(i<j)swap(a[i],a[j]);
    }

    quick_sort(l,j);
    quick_sort(j+1,r);

}

int main()
{
    cin>>n;
    for(int i=0;i<n;i++)
        scanf("%d",&a[i]);

    quick_sort(0,n-1);

    for(int i=0;i<n;i++)
        printf("%d ",a[i]);

    return 0;

}

发布了22 篇原创文章 · 获赞 7 · 访问量 427

猜你喜欢

转载自blog.csdn.net/qq_40905284/article/details/102573239
今日推荐