编写一个冒泡排序的函数模板。
时间: 2024-01-14 12:42:40 浏览: 71
以下是一个使用模板实现的冒泡排序函数:
```c++
template <typename T>
void bubbleSort(T arr[], int n) {
for (int i = 0; i < n-1; ++i) {
bool flag = false;
for (int j = 0; j < n-1-i; ++j) {
if (arr[j] > arr[j+1]) {
std::swap(arr[j], arr[j+1]);
flag = true;
}
}
if (!flag) break;
}
}
```
模板参数 `T` 表示数组中元素的类型,`arr` 是待排序的数组,`n` 是数组中元素的个数。这个函数使用了冒泡排序算法,它会对数组进行原地排序。
相关问题
编写一个冒泡排序的函数模板
好的,以下是一个冒泡排序函数模板的示例代码:
```c++
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;
}
}
}
}
```
该函数模板接受一个数组和数组的大小作为参数,使用冒泡排序算法将数组元素按升序排序。注意,模板类型 `T` 必须支持比较运算符 `>`。可以将该模板用于任何支持比较运算符的类型,例如整数、浮点数、字符、结构体等。
用c++编写一个冒泡排序的函数模板
以下是一个使用模板的冒泡排序函数的示例代码:
```c++
#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 arr[] = { 64, 25, 12, 22, 11 };
int n = sizeof(arr) / sizeof(arr[0]);
bubbleSort(arr, n);
cout << "Sorted array: ";
for (int i = 0; i < n; i++)
cout << arr[i] << " ";
return 0;
}
```
这个函数使用了一个模板类型T来表示数组中的元素类型。这允许我们使用相同的函数来排序不同类型的数组,只需要传递正确的类型。在函数内部,我们使用两个嵌套的循环来遍历数组,并比较相邻的元素。如果它们顺序不正确,我们交换它们的位置。最后,我们在主函数中调用bubbleSort函数,将需要排序的数组和数组的大小作为参数传递给它。
阅读全文