Hdu 1040 - As Easy As A+B

简单排序,我用的是快排。

AC代码:

#include <stdio.h>
#include <stdlib.h>
#define N 1005
int s[N];
int QuickPass(int st[N], int b, int e)
{
    int i = b, j = e;
    st[0] = st[i];
    while(i<j)
    {
        while(st[j]>st[0] && i<j) j--;
        if(i<j)
        {
            st[i] = st[j];
            i++;
            while(st[i]<=st[0] && i<j) i++;
            if(i<j)
            {
                st[j] = st[i];
                j--;
            }
        }
    }
    st[i] = st[0];
    return i;
}
void QuickSort(int seq[N], int s, int t)
{
    int p;
    if(s<t)
    {
        p = QuickPass(seq, s, t);
        QuickSort(seq, s, p-1);
        QuickSort(seq, p+1, t);
    }
}
int main()
{
    int t,n,i;
    scanf("%d", &t);
    while(t--)
    {
        scanf("%d", &n);
        for(i=1; i<=n; i++)
        {
            scanf("%d", &s[i]);
        }
        QuickSort(s, 1, n);
        for(i=1; i<n; i++)
        {
            printf("%d ",s[i]);
        }
        printf("%d\n",s[i]);
    }
    return 0;
}





 

你可能感兴趣的:(Hdu 1040 - As Easy As A+B)