7-30 字串的氣泡排序 (20分)
阿新 • • 發佈:2021-01-22
7-30 字串的氣泡排序 (20分)
我們已經知道了將N個整數按從小到大排序的氣泡排序法。本題要求將此方法用於字串序列,並對任意給定的K(<N),輸出掃描完第K遍後的中間結果序列。
輸入格式:
輸入在第1行中給出N和K(1≤K<N≤100),此後N行,每行包含一個長度不超過10的、僅由小寫英文字母組成的非空字串。
輸出格式:
輸出氣泡排序法掃描完第K遍後的中間結果序列,每行包含一個字串。
輸入樣例:
6 2
best
cat
east
a
free
day
輸出樣例:
best
a
cat
day
east
free
思路:
此題依舊使用string較為簡單
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <string>
using namespace std;
int main(){
int n,k,i,j;
cin >> n;
cin >> k;
string str[n];
string red;
for(i=0;i<n;i++){
cin >> str[i];//讀入n個單詞
}
for(j=0;j< k;j++){//進行k輪排序
for(i=0;i<n;i++){//進行一輪氣泡排序
if(str[i]>str[i+1]&&i<n-1){
red = str[i];
str[i] = str[i+1];
str[i+1] = red;
}
}
}
for(i=0;i<n;i++){
cout << str[i] << endl;
}
return 0;
}