6 Star 0 Fork 0

李嘉/作业

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
快速排序.cpp 1.69 KB
一键复制 编辑 原始数据 按行查看 历史
尹仁静 提交于 2024-05-21 22:24 . 快速排序
#include <iostream>
#include <vector>
#include <cstdlib>
#include <ctime>
// 快速排序的分区函数
int partition(std::vector<int>& arr, int low, int high) {
int pivot = arr[high]; // 选择最右边的元素作为枢轴
int i = (low - 1); // 小于枢轴的元素索引
for (int j = low; j <= high - 1; j++) {
if (arr[j] < pivot) {
i++;
std::swap(arr[i], arr[j]);
}
}
std::swap(arr[i + 1], arr[high]);
return (i + 1);
}
// 快速排序
void quickSort(std::vector<int>& arr, int low, int high) {
if (low < high) {
int pi = partition(arr, low, high);
// 分别对枢轴左右两侧进行递归排序
quickSort(arr, low, pi - 1);
quickSort(arr, pi + 1, high);
}
}
// 生成随机数据集
std::vector<int> generateRandomArray(int size, int range) {
std::vector<int> arr(size);
srand(time(0)); // 初始化随机数生成器
for (int i = 0; i < size; ++i) {
arr[i] = rand() % range; // 生成0到range-1之间的随机整数
}
return arr;
}
// 测试快速排序
void testQuickSort() {
const int SIZE = 30;
const int RANGE = 200;
std::vector<int> arr = generateRandomArray(SIZE, RANGE);
// 打印原始数组
std::cout << "Original array:" << std::endl;
for (int num : arr) {
std::cout << num << " ";
}
std::cout << std::endl;
// 进行快速排序
quickSort(arr, 0, SIZE - 1);
// 打印排序后的数组
std::cout << "Sorted array:" << std::endl;
for (int num : arr) {
std::cout << num << " ";
}
std::cout << std::endl;
}
int main() {
testQuickSort();
return 0;
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/li-jia0706/task.git
git@gitee.com:li-jia0706/task.git
li-jia0706
task
作业
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385