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

来源:互联网 发布:知乎 渡边信一郎 编辑:程序博客网 时间:2024/06/04 18:15

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

输入格式:

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

输出格式:

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

输入样例:

6 2bestcateastafreeday

输出样例:

bestacatdayeastfree
#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;}

原创粉丝点击