#include<iostream>
using namespace std;
//利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序
//排序规则从大到小,排序算法为选择排序
//分别利用char数组和int数组进行测试
template<class T>
void Myswap(T &a, T &b) {
T tmp = a;
a = b;
b = tmp;
}
template<class T>
void SelectionSort(T arr[], int len) {
for (int i = 0; i < len; i++) {
int max = i;
for (int j = i + 1; j < len; j++) {
if (arr[max] < arr[j]) {
max = j;
}
}
if (i != max) {
Myswap(arr[i], arr[max]);
}
}
}
template<class T>
void printArray(T arr[], int len) {
for (int i = 0; i < len;i++) {
cout << arr[i] << " ";
}
cout << endl;
}
void test01() {
char charArr[] = "abcdef";
int len = sizeof(charArr) / sizeof(char);
SelectionSort(charArr, len);
printArray(charArr, len);
}
void test02() {
int arr[] = { 3,4,5,6,7 };
int len = sizeof(arr) / sizeof(int);
SelectionSort(arr, len);
printArray(arr, len);
}
int main() {
test01();
test02();
system("pause");
return -1;
}
C++ 模板案例
于 2023-05-06 19:48:31 首次发布