C++20 冒泡排序实现示例
以下是使用 C++20 实现冒泡排序的示例代码:
#include <iostream>
#include <vector>
#include <ranges>
namespace rs = std::ranges;
void bubble_sort(std::vector<int>& arr) {
for (std::size_t i = 0; i < arr.size() - 1; ++i) {
for (std::size_t j = 0; j < arr.size() - i - 1; ++j) {
if (arr[j] > arr[j+1]) {
std::swap(arr[j], arr[j+1]);
}
}
}
}
int main() {
std::vector<int> arr = {3, 7, 1, 9, 2, 5, 4, 6, 8};
std::cout << "Before sorting: ";
rs::copy(arr, std::ostream_iterator<int>(std::cout, " "));
std::cout << std::endl;
bubble_sort(arr);
std::cout << "After sorting: ";
rs::copy(arr, std::ostream_iterator<int>(std::cout, " "));
std::cout << std::endl;
return 0;
}
在这个例子中,我们使用了 C++20 的 ranges 库来打印输出数组中的元素,std::ranges::copy 函数可以将一个序列中的元素复制到一个输出迭代器中。在排序算法实现中,我们使用了两个嵌套的循环,外层循环的次数是数组长度减一,内层循环的次数是数组长度减外层循环索引减一。在每一次内层循环中,我们比较相邻的两个元素,如果前面的元素比后面的元素大,就交换它们的位置。最终,我们得到了一个按升序排列的数组。
原文地址: https://www.cveoy.top/t/topic/lEFv 著作权归作者所有。请勿转载和采集!