快速排序Quicksort

#include<iostream>
using namespace std;
int a[2005];
int main()
{
    int quicksort(int r,int l);
    int n,i;
    while(cin>>n)
    {
        if(n==0)
        {
            break;
        }
        for(i=0;i<n;i++)
        {
            cin>>a[i];
        }
        quicksort(0,n-1);
        for(i=0;i<n;i++)
        {
            cout<<a[i]<<"\n";
        }
    }
}
int quicksort(int r,int l)
{
    int i=r,j=l,x=a[i],t;
    do
    {
        while(a[i]<x)
        {
            i++;
        }
        while(a[j]>x)
        {
            j--;
        }
        if(i<=j)
        {
            t=a[i];
            a[i]=a[j];
            a[j]=t;
            j--;
            i++;
        }
    }
    while(i<=j);
    if(i<l)
    {
        quicksort(i,l);
    }
    if(j>r)
    {
        quicksort(r,j);
    }
}

 

posted @ 2019-05-08 22:06  Leozi  阅读(113)  评论(0编辑  收藏  举报