8.18编写一个函数模板,使用冒泡排序将数组内容由小到大排列并打印出来,并写出调用此函数模板的完整程序,使得函数调用时,数组的类型可以是整数也可以是双精度型
时间: 2024-03-25 10:40:20 浏览: 84
函数模板,冒泡排序
下面是使用冒泡排序将数组由小到大排列并打印出来的函数模板及其调用程序:
```c++
#include<iostream>
using namespace std;
template<typename T>
void bubble_sort(T arr[], int n) {
for (int i = 0; i < n - 1; ++i) {
for (int j = 0; j < n - 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 arr1[] = { 3, 1, 4, 1, 5, 9, 2, 6, 5, 3 };
double arr2[] = { 3.14, 1.41, 2.72, 1.61, 0.58, 0.62 };
int n1 = sizeof(arr1) / sizeof(arr1[0]);
int n2 = sizeof(arr2) / sizeof(arr2[0]);
bubble_sort(arr1, n1);
bubble_sort(arr2, n2);
for (int i = 0; i < n1; ++i) {
cout << arr1[i] << ' ';
}
cout << endl;
for (int i = 0; i < n2; ++i) {
cout << arr2[i] << ' ';
}
cout << endl;
return 0;
}
```
函数模板中的参数类型是 `typename T`,意味着可以传入任意类型的数组,如整型数组、双精度型数组等。在主函数中,我们分别定义了一个整型数组 `arr1` 和一个双精度型数组 `arr2`,并调用了 `bubble_sort` 函数模板对它们进行排序。排序后,我们分别输出了两个数组的内容。
阅读全文