#include <iostream>
#include <vector>
#include <algorithm>
// 快速排序示例
void quickSort(std::vector<int>& arr) {
if (arr.size() <= 1) return;
int pivot = arr[arr.size() / 2];
std::vector<int> left, right;
for (int i = 0; i < arr.size(); ++i) {
if (i == arr.size() / 2) continue;
if (arr[i] < pivot) left.push_back(arr[i]);
else right.push_back(arr[i]);
}
quickSort(left);
quickSort(right);
arr.clear();
for (int num : left) arr.push_back(num);
arr.push_back(pivot);
for (int num : right) arr.push_back(num);
}
// 冒泡排序示例
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]);
}
}
}
}
// 使用 C++ STL 的 sort 函数
void stlSort(std::vector<int>& arr) {
std::sort(arr.begin(), arr.end());
}
int main() {
std::vector<int> arr = {64, 34, 25, 12, 22, 11, 90};
// 选择一个排序算法进行演示
quickSort(arr); // 或者使用 bubbleSort(arr); 或者 stlSort(arr);
std::cout << "Sorted array: ";
for (int num : arr) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
快速排序(Quick Sort):
quickSort 函数中,我们选择了中间元素作为基准,并将小于基准的元素放到左边,大于基准的元素放到右边。然后递归地对左右两个子数组进行排序。冒泡排序(Bubble Sort):
bubbleSort 函数中,我们通过两层循环来实现冒泡排序,外层循环控制遍历次数,内层循环进行相邻元素的比较和交换。STL 排序(STL Sort):
std::sort,它使用了混合排序算法(通常是快速排序、堆排序和插入排序的组合),性能非常好。stlSort 函数展示了如何使用 std::sort 对数组进行排序。主函数(main):
main 函数中,我们定义了一个待排序的数组,并调用不同的排序函数对其进行排序。最后输出排序后的结果。你可以根据需要选择不同的排序算法进行测试。
上一篇:c++ 串口通讯
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站