自学内容网 自学内容网

编写程序,从键盘分别输入十个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;
}

代码说明:

  1. bubbleSort 函数模板

    • 参数 arr 是一个 std::vector<T> 类型的引用,表示要排序的数组。
    • 使用两层嵌套的 for 循环实现冒泡排序算法。外层循环控制遍历次数,内层循环进行相邻元素的比较和交换。
  2. printArray 函数模板

    • 参数 arr 是一个 std::vector<T> 类型的常量引用,表示要输出的数组。
    • 使用范围基的 for 循环遍历数组并输出每个元素。
  3. main 函数

    • 定义三个 std::vector 容器 intArraydoubleArraycharArray 分别存储输入的十个 int 型数据、十个 double 型数据和十个 char 型数据。
    • 通过 std::cin 从键盘读取相应的数据。
    • 调用 bubbleSort 函数对每组数据进行排序。
    • 调用 printArray 函数输出排序后的结果。

原文地址:https://blog.csdn.net/weixin_45422672/article/details/144314029

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!