题目: 从文件读入一个字符串,对其进行奇偶排序,使字母都按顺序排列。
奇偶排序:每个奇数的字符开始,依次比较,若a[i-1]>a[i]或者a[i]>a[i+1]则交换;再从偶数的字符开始,如此循环往复,直至交换完毕。
//从文件读入一个字符串,对其进行奇偶排序,使字母都按顺序排列。
//奇偶排序:每个奇数的字符开始,依次比较,若a[i-1]>a[i]或者a[i]>a[i+1]则交换;
//再从偶数的字符开始,如此循环往复,直至交换完毕。
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
void Swap(char &s1, char &s2) {
char temp = s1;
s1 = s2;
s2 = temp;
}
int main(){
ifstream is("string.txt");
if(!is) {
cerr << "File can not be opened!" << endl;
exit(EXIT_FAILURE);
}
string str;
bool flag1, flag2;
is >> str;//从外部读入文件
cout << "Before sorting:\n" << str << endl;
while(flag1==false || flag2==false) { //只有当两轮遍历结束后flag1与flag2都为true才跳出循环
flag1 = true;
fl