应用C++对一个txt文件中的数据采用冒泡排序的方式进行从小到大和从大到小的排序将结果输入到一个新的txt文件中
时间: 2024-04-17 12:24:02 浏览: 138
The-data-from-small-to-large-array.zip_toSmall(arr)
你可以使用下面的代码示例来实现这个功能:
```cpp
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
// 冒泡排序
void bubbleSort(std::vector<int>& data, bool ascending) {
int n = data.size();
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (ascending) {
if (data[j] > data[j + 1]) {
std::swap(data[j], data[j + 1]);
}
} else {
if (data[j] < data[j + 1]) {
std::swap(data[j], data[j + 1]);
}
}
}
}
}
int main() {
// 读取数据
std::ifstream inputFile("input.txt");
std::vector<int> data;
int num;
while (inputFile >> num) {
data.push_back(num);
}
inputFile.close();
// 按照升序排序并写入升序文件
std::vector<int> ascendingData = data;
bubbleSort(ascendingData, true);
std::ofstream ascendingFile("ascending.txt");
for (int i = 0; i < ascendingData.size(); i++) {
ascendingFile << ascendingData[i] << " ";
}
ascendingFile.close();
// 按照降序排序并写入降序文件
std::vector<int> descendingData = data;
bubbleSort(descendingData, false);
std::ofstream descendingFile("descending.txt");
for (int i = 0; i < descendingData.size(); i++) {
descendingFile << descendingData[i] << " ";
}
descendingFile.close();
std::cout << "排序完成并写入文件。" << std::endl;
return 0;
}
```
在上面的代码中,我们首先读取名为 "input.txt" 的文件中的数据,并将其存储在一个整数向量中。然后,我们使用冒泡排序算法对数据进行排序。根据传入的 `ascending` 参数,我们可以选择升序或降序排序。最后,我们将排序后的结果分别写入名为 "ascending.txt" 和 "descending.txt" 的文件中。
你只需将要排序的数据存储在 "input.txt" 文件中,然后运行上面的代码即可得到排序后的结果。
阅读全文