题目1054:字符串内排序

题目1054:字符串内排序_第1张图片

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

int partition(char a[],char p,int r)
{
    char x = a[r];
    int middle = p;
    for(int j = p ; j < r ; j++)
    {
        if(a[j] < x)
        {
            char temp  = a[middle];
            a[middle] = a[j];
            a[j] = temp;
            middle++;
        }
    }
    char temp = a[r];
    a[r]     = a[middle];
    a[middle] = temp;
    return middle;
}

void QuickSort(char a[],int p,int r)
{
    if (p<r)
    {
        int q=partition(a,p,r);
        QuickSort(a,p,q-1);
        QuickSort(a,q+1,r);
    }
}

char str[220]={'\0'};
int main()
{
    while(scanf("%s",str) != EOF)
    {
        int len=strlen(str);
        QuickSort(str,0,len-1);
        printf("%s\n",str);
    }
    return 0;
}


你可能感兴趣的:(复试机试题,OJ机试)