关注
以下是一个基于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`)的元素移动到左侧,将大于主元素的元素移动到右侧,然后将主元素放置到合适的位置。
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 我来点评面试官 #
9241次浏览 76人参与
# 工作后,谈恋爱还和学生时代一样吗? #
38767次浏览 365人参与
# 京东开奖 #
445736次浏览 2498人参与
# 今年秋招是回暖还是遇冷 #
19293次浏览 122人参与
# 职场破冰,你们都聊什么? #
28233次浏览 150人参与
# 你实习是赚钱了还是亏钱了? #
19215次浏览 179人参与
# 你的领导最像哪种动物,为什么? #
23600次浏览 133人参与
# 阿里云工作体验 #
31410次浏览 106人参与
# 秋招开始捡漏了吗 #
59248次浏览 406人参与
# 我的AI电子员工 #
20662次浏览 151人参与
# 来聊聊你目前的求职进展 #
686052次浏览 6921人参与
# 同bg的你秋招战况如何? #
166294次浏览 967人参与
# 用一句话形容你的团队氛围 #
12165次浏览 144人参与
# 找工作八股要背到什么程度? #
10941次浏览 181人参与
# 上班摸鱼,你都在干些什么? #
28736次浏览 223人参与
# 教师节,你送祝福了吗 #
10965次浏览 75人参与
# 毕业论文进行时 #
1516次浏览 20人参与
# 三一集团提前批进度交流 #
39893次浏览 228人参与
# 你找工作是从容有余 or 匆忙滚爬? #
6662次浏览 72人参与
# 三一重工求职进展汇总 #
22299次浏览 82人参与
# 上班后,才发现大学__白学了 #
10609次浏览 67人参与
