5-30 字符串的冒泡排序 (20分)

我们已经知道了将NN个整数按从小到大排序的冒泡排序法。本题要求将此方法用于字符串序列,并对任意给定的KK<N<N),输出扫描完第KK遍后的中间结果序列。

输入格式:

输入在第1行中给出NNKK1\le K<N\le 1001K<N100),此后NN行,每行包含一个长度不超过10的、仅由小写英文字母组成的非空字符串。

输出格式:

输出冒泡排序法扫描完第KK遍后的中间结果序列,每行包含一个字符串。

输入样例:

6 2
best
cat
east
a
free
day

输出样例:

best
a
cat
day
east
free
#include<stdio.h>
#include<string.h>
void swap(char *str1,char *str2)
{
    char temp[1000];
    strcpy(temp,str1);
    strcpy(str1,str2);
    strcpy(str2,temp);
}
int main()
{
    int i,j,n,k;
    char str[200][20];
    scanf("%d %d",&n,&k);
    for(i=0; i<n; i++)
    {
        scanf("%s",str[i]);
        getchar();
    }
    for(i=0; i<k; i++)
        for(j=1; j<n; j++)
            if(strcmp(str[j-1],str[j])>0)
            {
                swap(str[j-1],str[j]);
            }
    for(int i=0; i<n; i++)
        printf("%s\n",str[i]);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_36664584/article/details/75209091