快速排序
快速排序模板
O(nlogn)
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
const int N = 1000010;
int num[N];
void QUICK_sort(int num[], int l, int r) {
if (l >= r) return;
int i = l - 1, j = r + 1, x = num[l + r >> 1];
while (i < j)
{
do i++; while (num[i] < x);
do j--; while (num[j] > x);
if (i < j) swap(num[i], num[j]);
}
QUICK_sort(num, l, j);
QUICK_sort(num, j + 1, r);
}
int main() {
int x;
scanf("%d", &x);
for (int i = 0; i < x; i++)
scanf("%d", &num[i]);
QUICK_sort(num,0,x-1);
for (int i = 0; i < x; i++)
printf("%d", num[i]);
return 0;
}
本文介绍了快速排序算法的详细实现,包括主函数、排序模板和核心的划分过程。通过示例展示了如何对输入数组进行排序,并在O(nlogn)的时间复杂度内完成。程序适用于大规模数据的高效排序。
1181

被折叠的 条评论
为什么被折叠?



