首页 > 编程语言 > 详细

最简单的C++泛型选择排序代码

时间:2021-01-30 17:45:34      阅读:16      评论:0      收藏:0      [点我收藏+]
#include <iostream>
#include <string>
using namespace std;

template <class T>
void MySwap(T &a, T &b){
    T temp = a;
    a = b;
    b = temp;
}
template <class T, class Func>
void SelectSort(T arr[] , int len, Func swap){
    for(int i=0; i<len; i++){
        int min = i;
        for(int j=i+1; j<len; j++){
            if(arr[j] < arr[min]){
                min = j;
            }
        }
        if(min != i){
            swap(arr[i], arr[min]);
        }
    }
}

template <class T>
void MyPrint(T arr[], int len){
    for(int i=0; i<len; i++){
        cout << arr[i] << ", ";
    }
    cout << endl;
}

int main() {
    int a = 1;
    int b =2;
    MySwap(a, b);
    cout << "a:" <<a <<endl;
    cout << "b:" <<b <<endl;

    int nums[] = {5,6,8,1,3,7,4,2,9};
    int len = sizeof(nums) / sizeof(int);

    MyPrint<int>(nums, len);
    SelectSort<int>(nums, len, MySwap<int>);
    MyPrint<int>(nums, len);

    char ch[] = {d,a,c,b,g,f,e};
    int len2 = sizeof(ch) / sizeof(char);

    MyPrint<char>(ch, len2);
    SelectSort<char>(ch, len2, MySwap<char>);
    MyPrint<char>(ch, len2);

    std::cout << "Hello, World!" << std::endl;
    return 0;
}

 

最简单的C++泛型选择排序代码

原文:https://www.cnblogs.com/ziwuxian/p/14348699.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!