快排(模板)

#include<iostream>
#include<cstdio>
using namespace std;
void oo(int,int);
int a[101];
int main()
{
    int n,i;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    scanf("%d",&a[i]);
    oo(1,n); 
    for(i=1;i<=n;i++)
     printf("%d ",a[i]);
     return 0;
}
void oo(int l,int r)
{
    int i,j,mid,p;
    i=l;j=r;
    mid=a[(l+r)/2];
    do
    { 
    while(a[i]<mid) i++;
    while(a[j]>mid) j--;
    if(i<=j)
    {
        p=a[i];a[i]=a[j];a[j]=p;
        i++;j--;
    }
    }
    while(i<=j);
    if(l<j) oo(l,j);
    if(i<r) oo(i,r);
}

猜你喜欢

转载自www.cnblogs.com/zcy0917/p/9316528.html
今日推荐