编写冒泡排序的函数模板,并进行测(C++)
时间: 2023-08-19 12:15:39 浏览: 124
好的,下面是冒泡排序的函数模板:
```cpp
template<typename T>
void bubbleSort(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;
}
}
}
}
```
这里使用了模板,可以对不同类型的数组进行排序。函数中传入了一个数组 `arr` 和数组的长度 `n`,函数会将数组进行升序排序。
接下来,我们可以进行简单的测试:
```cpp
#include <iostream>
using namespace std;
template<typename T>
void bubbleSort(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[] = {9, 5, 6, 7, 3, 2, 8, 1, 4};
int n1 = sizeof(arr1) / sizeof(int);
bubbleSort(arr1, n1);
for (int i = 0; i < n1; i++) {
cout << arr1[i] << " ";
}
cout << endl;
double arr2[] = {9.2, 5.5, 6.1, 7.8, 3.3, 2.4, 8.7, 1.0, 4.9};
int n2 = sizeof(arr2) / sizeof(double);
bubbleSort(arr2, n2);
for (int i = 0; i < n2; i++) {
cout << arr2[i] << " ";
}
cout << endl;
return 0;
}
```
这里分别对一个 `int` 类型的数组和一个 `double` 类型的数组进行排序,并输出排序后的结果。
阅读全文