用C++编写的冒泡排序的函数模板:
时间: 2024-05-05 22:21:12 浏览: 12
下面是一个用C++编写的冒泡排序的函数模板示例:
```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;
}
}
}
}
```
该函数模板接受一个类型为`T`的数组和数组的大小`n`作为参数,其中`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函数,将需要排序的数组和数组的大小作为参数传递给它。
用c++类模板编写冒泡排序
好的,以下是使用C++模板编写冒泡排序的示例代码:
```c++
#include <iostream>
#include <vector>
using namespace std;
template<typename T>
void bubble_sort(vector<T>& arr) {
int n = arr.size();
for(int i = 0; i < n-1; i++) {
for(int j = 0; j < n-i-1; j++) {
if(arr[j] > arr[j+1]) {
swap(arr[j], arr[j+1]);
}
}
}
}
int main() {
vector<int> arr = {5, 2, 8, 1, 9};
bubble_sort(arr);
for(int num : arr) {
cout << num << " ";
}
return 0;
}
```
这段代码中,我们定义了一个模板函数`bubble_sort`,接受一个模板参数`T`,并对一个`vector`类型的数组进行冒泡排序。在排序过程中,我们比较相邻的元素,如果顺序不对则进行交换,直到数组被完全排序。最后,我们在`main`函数中定义了一个整型数组并进行排序,然后输出排好序的结果。