使用函数模板实现任意类型的数组的降序排序
时间: 2024-01-22 20:20:47 浏览: 76
下面是使用函数模板实现任意类型的数组降序排序的示例代码:
```cpp
#include <iostream>
template<typename T>
void selectionSort(T arr[], int n)
{
for (int i = 0; i < n - 1; i++)
{
int maxIndex = i;
for (int j = i + 1; j < n; j++)
{
if (arr[j] > arr[maxIndex])
{
maxIndex = j;
}
}
std::swap(arr[i], arr[maxIndex]);
}
}
int main()
{
int intArr[] = { 3, 7, 1, 9, 2 };
double doubleArr[] = { 3.5, 7.2, 1.8, 9.1, 2.6 };
const int n = sizeof(intArr) / sizeof(int);
const int m = sizeof(doubleArr) / sizeof(double);
selectionSort(intArr, n);
selectionSort(doubleArr, m);
std::cout << "降序排列后的整型数组为:";
for (int i = 0; i < n; i++)
{
std::cout << intArr[i] << " ";
}
std::cout << std::endl;
std::cout << "降序排列后的双精度浮点型数组为:";
for (int i = 0; i < m; i++)
{
std::cout << doubleArr[i] << " ";
}
std::cout << std::endl;
return 0;
}
```
该程序使用了函数模板 `selectionSort`,模板参数为类型 `T`,表示待排序数组的元素类型。在函数内部,采用选择排序法对数组进行排序,并使用 `std::swap` 函数实现元素交换。程序中还提供了两个示例,分别为整型和双精度浮点型数组。可以看到,使用函数模板实现任意类型的数组的降序排序非常方便。
阅读全文