用c++类模板编写冒泡排序
时间: 2023-03-20 19:03:51 浏览: 130
好的,以下是使用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`函数中定义了一个整型数组并进行排序,然后输出排好序的结果。
相关问题
怎么用c++类模板编写冒泡排序
使用 C++ 模板编写冒泡排序,可以如下所示:
```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 - 1 - i; j++)
{
if (arr[j] > arr[j + 1])
{
T temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main()
{
int arr[] = { 3, 7, 1, 8, 4, 2, 9, 5, 6 };
int n = sizeof(arr) / sizeof(arr[0]);
bubble_sort(arr, n);
for (int i = 0; i < n; i++)
{
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
在模板函数 `bubble_sort` 中,我们使用了模板参数 `T` 来表示数组的元素类型。然后,我们按照冒泡排序的算法,通过嵌套的循环来对数组进行排序。最后,我们在 `main` 函数中调用 `bubble_sort` 函数,将数组进行排序,并输出排序后的结果。
用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函数,将需要排序的数组和数组的大小作为参数传递给它。
阅读全文