编程题 7-30 字符串的冒泡排序【PAT】

文章目录

编程练习题目集目录

题目

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

输入格式

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

输出格式

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

输入样例

6 2
best
cat
east
a
free
day

输出样例

best
a
cat
day
east
free

题解

解题思路

首先输入要输入字符串的个数和排序的次数,然后输入字符串,然后开始排序,根据输入的排序次数,使用循环,从第一个字符串开始依次比较,交换位置,直到排序次数为止,然后直接输出排完顺序的字符串即可。

完整代码

#include<string> #include<iostream> using namespace std; int main(void) { int x, y; string a[110]; cout << "输入两个数字:"; // 提交时注释此行 cin >> x >> y; cout << "请输入 " << x << " 个数字:"; // 提交时注释此行 for (int i = 0; i < x; i++) cin >> a[i]; while (y--) { for(int i = 0; i < x - 1; i++) if (a[i] > a[i + 1]) { string temp = a[i]; a[i] = a[i + 1]; a[i + 1] = temp; } } for (int i = 0; i < x; i++) cout << a[i] << endl; return 0; }
本文是转载文章,点击查看原文
如有侵权,请联系 lx@jishuguiji.net 删除。