编写程序,从键盘分别输入十个int型数据、十个double型数据和十个char型数据,对其分别进行冒泡方法排序,并输出排序后的结果。(要求用函数模板来实现)
#include <iostream>
#include <vector>
// 冒泡排序的函数模板
template <typename T>
void bubbleSort(std::vector<T>& arr) {
int n = arr.size();
for (int i = 0; i < n - 1; ++i) {
for (int j = 0; j < n - i - 1; ++j) {
if (arr[j] > arr[j + 1]) {
std::swap(arr[j], arr[j + 1]);
}
}
}
}
// 输出数组的函数模板
template <typename T>
void printArray(const std::vector<T>& arr) {
for (const T& element : arr) {
std::cout << element << " ";
}
std::cout << std::endl;
}
int main() {
std::vector<int> intArray(10);
std::vector<double> doubleArray(10);
std::vector<char> charArray(10);
// 输入十个 int 型数据
std::cout << "请输入十个 int 型数据: ";
for (int i = 0; i < 10; ++i) {
std::cin >> intArray[i];
}
// 输入十个 double 型数据
std::cout << "请输入十个 double 型数据: ";
for (int i = 0; i < 10; ++i) {
std::cin >> doubleArray[i];
}
// 输入十个 char 型数据
std::cout << "请输入十个 char 型数据: ";
for (int i = 0; i < 10; ++i) {
std::cin >> charArray[i];
}
// 对 int 型数据进行冒泡排序
bubbleSort(intArray);
std::cout << "排序后的 int 型数据: ";
printArray(intArray);
// 对 double 型数据进行冒泡排序
bubbleSort(doubleArray);
std::cout << "排序后的 double 型数据: ";
printArray(doubleArray);
// 对 char 型数据进行冒泡排序
bubbleSort(charArray);
std::cout << "排序后的 char 型数据: ";
printArray(charArray);
return 0;
}
代码说明:
-
bubbleSort
函数模板:- 参数
arr
是一个std::vector<T>
类型的引用,表示要排序的数组。 - 使用两层嵌套的
for
循环实现冒泡排序算法。外层循环控制遍历次数,内层循环进行相邻元素的比较和交换。
- 参数
-
printArray
函数模板:- 参数
arr
是一个std::vector<T>
类型的常量引用,表示要输出的数组。 - 使用范围基的
for
循环遍历数组并输出每个元素。
- 参数
-
main
函数:- 定义三个
std::vector
容器intArray
,doubleArray
,charArray
分别存储输入的十个int
型数据、十个double
型数据和十个char
型数据。 - 通过
std::cin
从键盘读取相应的数据。 - 调用
bubbleSort
函数对每组数据进行排序。 - 调用
printArray
函数输出排序后的结果。
- 定义三个
原文地址:https://blog.csdn.net/weixin_45422672/article/details/144314029
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!