7-30 字符串的冒泡排序(20 分)
我们已经知道了将N个整数按从小到大排序的冒泡排序法。本题要求将此方法用于字符串序列,并对任意给定的$K(\lt N)$,输出扫描完第K遍后的中间结果序列。
输入格式:
输入在第1行中给出N和$K(1\leq K\lt N\leq 100)$,此后N行,每行包含一个长度不超过10的、仅由小写英文字母组成的非空字符串。
输出格式:
输出冒泡排序法扫描完第K遍后的中间结果序列,每行包含一个字符串。
输入样例:
1 2 3 4 5 6 7
| 6 2 best cat east a free day
|
输出样例:
1 2 3 4 5 6
| best a cat day east free
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| #include <stdio.h> #include <string.h> int main() { int m,n; while(scanf("%d%d",&m,&n)!=EOF) { char a[101][11]; char b[11]; int i,j; for(i=0;i<m;i++) scanf("%s",&*a[i]); for(j=0;j<n;j++) { for(i=0;i<m-1-j;i++) { if(strcmp(a[i],a[i+1])>0) { strcpy(b,a[i]); strcpy(a[i],a[i+1]); strcpy(a[i+1],b); } } } for(i=0;i<m;i++) printf("%s\n",a[i]); } return 0; }
|