c++容器冒泡排序通用模板
时间: 2023-11-14 09:11:01 浏览: 77
以下是一个C++容器冒泡排序的通用模板:
```
template <typename T>
void bubbleSort(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]);
}
}
}
}
```
这个模板使用了C++的vector容器来存储待排序的元素,可以适用于各种类型的数据。它使用了冒泡排序算法,通过比较相邻的元素并交换它们的位置来实现排序。时间复杂度为O(n^2)。
相关问题
c++冒泡排序通用模板
下面是一个C++冒泡排序的通用模板:
```
template <typename T>
void bubbleSort(T arr[], int n) {
for (int i = 0; i < n - 1; i++) {
bool flag = true;
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
swap(arr[j], arr[j + 1]);
flag = false;
}
}
if (flag) break;
}
}
```
这个模板可以对任何类型的数组进行冒泡排序,只需要将数组和数组长度作为参数传入即可。其中,`typename T`表示这是一个泛型函数,`arr[]`表示传入的数组,`n`表示数组的长度。在函数内部,使用两个嵌套的循环来实现冒泡排序,最后返回排好序的数组。
c++冒泡排序函数模板
C++ 冒泡排序函数模板可以如下定义:
```
template <typename T>
void bubble_sort(T arr[], int n) {
for (int i = 0; i < n - i; j++) {
if (arr[j] > arr[j + 1]) {
std::swap(arr[j], arr[j + 1]);
}
}
}
}
```
其中,模板参数 `T` 表示数据类型,参数 `arr` 表示需要排序的数组,参数 `n` 表示数组的长度。
冒泡排序是一种简单的排序算法,它的基本思想是:将相邻的两个元素进行比较和交换,使得每次循环结束后最大(或最小)的元素“浮”到数组的最后一位,然后再从头开始进行下一轮比较和交换,直到排序完成。
阅读全文