c++,冒泡排序从大到小,利用类模板来实现double类型和int类型的排序
时间: 2023-06-27 19:07:11 浏览: 95
以下是利用类模板实现冒泡排序从大到小的示例代码:
```c++
#include <iostream>
using namespace std;
template <class T>
class BubbleSort
{
public:
void sort(T arr[], int size)
{
for(int i = 0; i < size - 1; i++)
{
for(int j = 0; j < size - i - 1; j++)
{
if(arr[j] < arr[j+1])
{
T temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
};
int main()
{
int intArr[] = {8, 2, 5, 3, 7};
double doubleArr[] = {3.2, 1.5, 4.8, 2.1, 9.7};
BubbleSort<int> intSort;
intSort.sort(intArr, 5);
BubbleSort<double> doubleSort;
doubleSort.sort(doubleArr, 5);
cout << "Int array sorted in descending order: ";
for(int i = 0; i < 5; i++)
{
cout << intArr[i] << " ";
}
cout << endl << "Double array sorted in descending order: ";
for(int i = 0; i < 5; i++)
{
cout << doubleArr[i] << " ";
}
return 0;
}
```
输出结果为:
```
Int array sorted in descending order: 8 7 5 3 2
Double array sorted in descending order: 9.7 4.8 3.2 2.1 1.5
```
在示例代码中,我们定义了一个类模板 BubbleSort,其中 sort 函数通过冒泡排序算法来对传递进来的数组进行排序。在 main 函数中,我们创建了两个 BubbleSort 类型的对象 intSort 和 doubleSort,并分别将 int 类型的数组 intArr 和 double 类型的数组 doubleArr 传递给 sort 函数进行排序。最后将排序后的结果输出到控制台。
阅读全文