关注
以下是一个基于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`)的元素移动到左侧,将大于主元素的元素移动到右侧,然后将主元素放置到合适的位置。
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
11-19 17:27
门头沟学院 嵌入式软件开发 点赞 评论 收藏
分享
牛客嘻嘻子:"承认随机性,降低自责阈值,停止用成功学鞭尸自己。"说的太好了!希望看到这里的大家都减少内耗,成功是多形态的,每个人的步伐不一定一致,有些时候慢慢来也可以的!
点赞 评论 收藏
分享
牛客热帖
更多
- 1... 工作半年后更确定:我们依然不欠优绩主义什么6104
- 2... 我建了一个分享实习业务的仓库,欢迎大家贡献哦3792
- 3... 岁末论道:谁才是牛客 2025 最强修仙者?3160
- 4... #牛客2025仙途报告#居然是五颗星2528
- 5... 腾讯 微信支付一面面经2517
- 6... 【2025-年终总结】25届毕业生果果牛这一年~2184
- 7... 仙途报告1964
- 8... 一个程序员的自救书|从酒吧陪玩DM到上岸大厂1918
- 9... 在当下这个社会,在人生这个无常的时代,我真心希望你和各位牛友开心1418
- 10... 壕壕壕,京东发7个月年终,此生要做东孝子1316
正在热议
更多
# 牛客2025仙途报告 #
14289次浏览 257人参与
# 实习要如何选择和准备? #
130149次浏览 1509人参与
# 元旦假期你打算怎么过 #
985次浏览 33人参与
# 你有哪些缓解焦虑的方法? #
44584次浏览 868人参与
# 格力求职进展汇总 #
197773次浏览 1267人参与
# 实习没人带,苟住还是跑路? #
507次浏览 18人参与
# 上班后和你想的一样吗? #
95193次浏览 701人参与
# 双非本科的出路是什么? #
189370次浏览 1500人参与
# 找工作,行业重要还是岗位重要? #
87604次浏览 1749人参与
# 我们是不是被“优绩主义”绑架了? #
1921次浏览 70人参与
# 今年你最想重开的一场面试是? #
13159次浏览 143人参与
# 一人说一个提前实习的好处 #
24209次浏览 320人参与
# 机械人晒出你的简历 #
148492次浏览 885人参与
# vivo工作体验 #
35086次浏览 136人参与
# 你面试体验感最差/最好的公司 #
29639次浏览 491人参与
# 礼物开箱Plog #
3322次浏览 102人参与
# 牛友们的论文几号送审 #
63137次浏览 833人参与
# 秋招落幕,你是He or Be #
23013次浏览 395人参与
# 你觉得机械有必要实习吗? #
16391次浏览 95人参与
# 机械只有读研才有出路吗? #
30896次浏览 261人参与
查看17道真题和解析

