关注
以下是一个基于Lomuto分区方案的快速排序实现,可以对一个整数数组进行排序:
```c++
void quicksort(int arr[], int low, int high) {
if (low < high) {
int pivot = partition(arr, low, high);
quicksort(arr, low, pivot - 1);
quicksort(arr, pivot + 1, high);
}
}
int partition(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;
}
```
在此实现中,`quicksort` 函数递归调用自身,通过不断对数组进行分区,将其划分为更小的子数组,最终实现排序。`partition` 函数是用于实现分区的核心算法,基于Lomuto分区方案,将数组中小于主元素(`pivot`)的元素移动到左侧,将大于主元素的元素移动到右侧,然后将主元素放置到合适的位置。
查看原帖
点赞 评论
相关推荐
牛客热帖
更多
正在热议
更多
# 实习的你做了哪些离谱的工作 #
1030次浏览 26人参与
# 工作压力大,你会干什么? #
1592次浏览 53人参与
# MiniMax求职进展汇总 #
1233次浏览 25人参与
# 我的付费上班经历 #
3618次浏览 75人参与
# 找实习记录 #
3876次浏览 88人参与
# 参加哪些竞赛对找工作有帮助? #
2101次浏览 42人参与
# 如果不上班,你会去做什么 #
1364次浏览 54人参与
# 邪修省钱套路 #
1284次浏览 51人参与
# AI让你的思考变深了还是变浅了? #
511次浏览 22人参与
# 毕业论文进行时 #
24670次浏览 146人参与
# 简历第一个项目做什么 #
1197次浏览 29人参与
# 为了入行xx岗,我学了__ #
1190次浏览 18人参与
# 毕业旅行去哪玩儿 #
21790次浏览 148人参与
# 24届软件开发秋招薪资爆料 #
411498次浏览 1276人参与
# 找实习是选平台还是选业务? #
40079次浏览 300人参与
# 你觉得面试是靠实力还是靠运气 #
27380次浏览 306人参与
# 哪些公司在招寒假实习? #
25720次浏览 354人参与
# 26届秋招投递记录 #
111300次浏览 658人参与
# 毕业后不工作的日子里我在做什么 #
226868次浏览 1683人参与
# 招聘要求与实际实习内容不符怎么办 #
150646次浏览 891人参与
# 硬件/芯片公司工作体验 #
142406次浏览 946人参与