• C++ 函数模板 排序算法


    #include<iostream>
    #include<string>
    using namespace std;
    
    
    //实现通用 对数组进行排序的函数
    //规则 从大到小
    //算法 选择
    //测试 char 数组、int数组
    
    //交换函数模板
    template<class T>
    void mySwap(T &a, T &b)
    {
        T temp = a;
        a = b;
        b = temp;
    }
    
    
    
    //排序算法
    template<class T>
    void mySort(T arr[], int len)
    {
        for (int i = 0; i < len; i++)
        {
            int max = i;//认定最大值的下标
            for (int j = i + 1; j < len; j++)
            {
                //认定的最大值 比 遍历出的数值要下,说明j下标的元素是真正的最大值
                if (arr[max] < arr[j])
                {
                    max = j;//更新最大值下标
                }
                
            }
        
            if (max != i)
            {
                //交换max和i元素
                mySwap(arr[max], arr[i]);
            }
        }
    }
    
    //提供打印数组模板
    template<class T>
    void printArray(T arr[], int len)
    {
        for (int i = 0; i < len; i++)
        {
            cout << arr[i] << " ";
        }
        cout << endl;
    }
    
    
    void test01()
    {
        //测试char数组
        char charArr[] = "badcfe";
        int num = sizeof(charArr) / sizeof(char);
        mySort(charArr, num);
        printArray(charArr, num);
    
    }
    
    
    void test02()
    {
        //测试int 数组
        int intArr[] = { 7,5,1,3,9,2,4,6,8 };
    
        int num = sizeof(intArr) / sizeof(int);
    
        mySort(intArr, num);
        printArray(intArr, num);
    }
    
    int main()
    {
        //test01();
        test02();
    
        system("pause");
    
        return 0;
    }
  • 相关阅读:
    Hdoj 3697 Selecting courses 【贪心】
    nginx 反向代理
    嵌入式交叉编译环境搭建
    OpenWrt编译
    OpenWrt for vmware 从openwrt.org下载10.03.1 或是自己下载最新的源码进行编译生成x86 vmdk格式
    ubuntu centos debina
    openWRT
    C++ classics
    tomcat配置访问日志,访问首页主目录
    apache http配置https
  • 原文地址:https://www.cnblogs.com/keepma/p/15589022.html
Copyright © 2020-2023  润新知