c++模板实现的冒泡排序(vs2019)
模板实现的冒泡排序可以对任意数据类型的数据进行排序,这样节省了大量的时间去写重复的代码.
在此之前,我将交换任意数据类型的模板和打印任意数据类型数据的模板也写了出来,这样用起来很方便.
在这里插入代码片
#include<iostream>
using namespace std;
//交换两个数的模板
template<class T>
void MySwap(T& a, T& b)
{
T temp = a;
a = b;
b = temp;
}
//打印数组的模板
template<class T>
void PrintArr(T a[],int len)
{
for (int i = 0; i < len; i++)
{
cout << a[i] << " ";
}
}
//冒泡排序模板
template<class T>
void BubbleSort(T a[], int len)
{
for (int i = 0; i < len-1; i++)//排序总轮数=元素个数-1;
{
for (int j = 0; j < len - i - 1; j++)//每轮对比次数=元素个数-当前排序轮数-1;
{
//如果前一个元素大于后一个元素就进行交换
if (a[j]>a[j+1])
{
//交换
MySwap(a[j], a[j + 1]);
}
}
}
//打印
PrintArr(a, len);
cout << endl;
}
//测试函数
void test01()
{
char a[5] = { 'a','d','b','c' ,'e' };//字符数组进行测试
int len = sizeof(a) / sizeof(a[0]);
BubbleSort(a, len);
int arr[5] = { 32,42,31,43,54 };//整形组进行测试
int num = sizeof(arr) / sizeof(int);
BubbleSort(arr, num);
}
int main()
{
test01();
return 0;
}
运行结果:
