zoukankan      html  css  js  c++  java
  • 最简单的C++泛型选择排序代码

    #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;
    }
  • 相关阅读:
    数组review
    算法复杂度分析
    利用栈判断括号是否匹配(Parentheses)
    java实现stack和queue
    路由器结构
    层次化路由简介
    es 嵌套对象和父子文档对比
    远心镜头的远心度
    Delphi编程细节汇总
    halcon深度学习总结(二)
  • 原文地址:https://www.cnblogs.com/ziwuxian/p/14348699.html
Copyright © 2011-2022 走看看