类模板对数组排序,以擂台的方式求最大值

#include <iostream>
/*写两个函数模板:
1.用来排序一个数组
2.用来打印数组
3.求数组的最大值
*/
using namespace std;
//模板的实例化是在程序运行使用到的视乎才会生成
//二进制代码
template <class A>
void mysort(A a[],int len)
{
    while(len !=0)
    {
     for(int i = 0;i<len;i++)
        if(a[i] <= a[i+1])
        {
            //交换
            A temp = a[i+1];
            a[i+1] = a[i];
            a[i] = temp;
        }
        len--;
    }
}
template <typename B>
void mymax(B a[],int len ,B *ret)
{
    *ret = a[0];
    for(int i = 1;i<len;i++)
    {
        if(*ret > a[i]) //只有当ret的值比a[i]继续遍历比较
        {

        }
        else {
            *ret = a[i];//否则将大的值赋值给ret,ret总是在已经遍历过的值中是最大的
        }
    }
}

template <class T>
//插入排序  以a[i] i 从1开始,依次与它前面的比较,若有比它大的就转换过来
void mysortA(T a[],int len)
{
    for(int i=1;i<len;i++)
    {
        for(int j=0;j<i;j++)
        {
            if(a[i] < a[j])
            {
                T temp = a[i];
                a[i] = a[j];
                a[j] = temp;   //
            }

        }
    }
}
template  <class B>
void myprinT(B a[],int len)
{
    for(int i = 0;i<len;i++)
        cout << a[i] <<"  " ;
        cout << endl;
}
int main()
{
    double a[7] = {2.5,6.8,10.9,3.1,5.32,6.99,9.65};
    myprinT(a,7);
    //mysort(a,7);
     myprinT(a,7);
     double max;
     mymax(a,7,&max);
    cout << "mymax  = " <<max <<endl;
   //mysort(a,5);
   //myprinT(a,6);
//   int max;
//   mymax(a,7,&max);
//   cout << "mymax  = " <<max <<endl;
    return 0;
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值