水题。。。。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char a[11],b[11];
int len;
int cmp(const void *p,const void *q)
{
return strcmp((char *)p,(char *)q);
}
int sort(int n)
{
int i,j;
char temp;
memset(b,0,sizeof(b));
for(i=n; i<len; i++)
{
if(a[n-1]>=a[i])
break;
}
temp=a[i-1];
a[i-1]=a[n-1];
a[n-1]=temp;
for(j=n; j<len; j++)
b[j-n]=a[j];
b[j-n]='\0';
a[n]='\0';
qsort(b,strlen(b),sizeof(b[0]),cmp);
strcat(a,b);
puts(a);
}
int main()
{
int n,i,j,flag;
scanf("%d",&n);
getchar();
while(n--)
{
gets(a);
qsort(a,strlen(a),sizeof(a[0]),cmp);
len=strlen(a);
puts(a);
for(i=len-1; i>0; i--)
{
if(a[i]>a[i-1])
{
sort(i);
i=len;
}
}
puts("");
}
return 0;
}
本文详细探讨了排序算法的基本概念,包括冒泡排序、选择排序、插入排序等常见算法,并重点介绍了快速排序、堆排序和归并排序的原理与实现。此外,文章还讨论了排序算法的时间复杂度和空间复杂度,提供了优化排序算法的策略。
17万+

被折叠的 条评论
为什么被折叠?



