请在只使用头文件iostream和vector的情况下,只利用for循环实现冒泡排序
时间: 2024-10-22 16:23:59 浏览: 18
最快的排序算法 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法,排序算法数据结构
5星 · 资源好评率100%
在C++中,你可以使用`<iostream>`和`<vector>`头文件,结合简单的for循环来实现冒泡排序。这里有一个示例:
```cpp
#include <iostream>
#include <vector>
// 冒泡排序函数
void bubbleSort(std::vector<int>& 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]) {
std::swap(arr[j], arr[j + 1]); // 如果当前元素比下一个大,就交换位置
}
}
}
}
int main() {
std::vector<int> numbers = {5, 3, 8, 1, 2};
std::cout << "Before sorting: ";
for (const auto& num : numbers) {
std::cout << num << " ";
}
std::cout << "\n";
bubbleSort(numbers);
std::cout << "After sorting: ";
for (const auto& num : numbers) {
std::cout << num << " ";
}
return 0;
}
```
在这个示例中,我们首先定义了一个`bubbleSort`函数,它接受一个`std::vector<int>`类型的参数。外层循环控制遍历次数,内层循环则负责比较并可能交换元素。如果当前元素比下一个大,我们就用`std::swap`函数交换它们的位置。在`main`函数中,我们创建了一个vector并调用了`bubbleSort`对其进行排序。
阅读全文