c++冒泡排序通用模板
时间: 2023-11-14 09:10:22 浏览: 40
下面是一个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 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 size) {
for (int i = 0; i < size - 1; i++) {
for (int j = 0; j < size - i - 1; j++) {
if (arr[j > arr[j + 1]) {
T temp = arr[j];
arr[j = arr[j + 1];
arr[j + 1 = temp;
}
}
}
}
```
上述代码定义了一个模板函数`bubbleSort`,它可以接受任意类型的数组作为参数,并对其进行冒泡排序。模板参数`typename T`表示泛型类型,可以是`int`、`char`或其他类型。函数中使用了两层循环来比较和交换数组中的元素,实现了冒泡排序算法。你可以根据需要调用`bubbleSort`函数并传入相应的数组和大小来进行排序。例如,你可以使用`int`类型的数组和`char`类型的数组分别进行排序。<em>1</em><em>2</em><em>3</em>
#### 引用[.reference_title]
- *1* *2* *3* [C++ 冒泡排序,模板](https://blog.csdn.net/qq_73985089/article/details/130063997)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item]
[ .reference_list ]