1. 程式人生 > >資料結構實驗之排序一:一趟快排( SDUT 3398)

資料結構實驗之排序一:一趟快排( SDUT 3398)

#include <stdio.h>
#include <string.h>

int a[110000];

void qusort(int l, int r, int a[])
{
    int i = l, j = r;
    int x = a[i];
    if(i >= j) return ;
    while(i < j)
    {
        while(i < j && a[j] >= x) j --;
        a[i] = a[j];
        while(i < j && a[i] <= x) i ++;
        a[j] = a[i];
    }
    a[i] = x;


//    qusort(l,i-1,a);  // kuaipai
//    qusort(i+1,r,a);
}
int main()
{
    int n;
    while(scanf("%d",&n) != EOF)
    {
        for(int i = 0; i < n; i ++)
        {
            scanf("%d",&a[i]);
        }
        qusort(0,n-1,a);
        for(int i = 0; i < n; i ++)
        {
            if(i == 0) printf("%d",a[i]);
            else printf(" %d",a[i]);
        }
        printf("\n");
    }
    return 0 ;
}