#include<cstdio>
const int N = 10010;
int data[N];
#define swap(a,b){int temp=a;a=b;b=temp;}
int partition(int left, int right) {
int i = left;
int temp = data[right];
for (int j = left; j < right; j++)
if (data[j] < temp) {
swap(data[j], data[i]);
i++;
}
swap(data[i], data[right]);
return i;
}
void quicksort(int left, int right) {
if (left < right) {
int i = partition(left, right);
quicksort(left, i - 1);
quicksort(i + 1, right);
}
}
int main() {
int n;
scanf_s("%d", &n);
for (int i = 1; i <= n; i++) scanf_s("%d", &data[i]);
quicksort(1, n);
printf("% d\n", data[(n + 1) / 2]);
return 0;
}
快速排序算法求解逆序对问题:
最新推荐文章于 2024-08-18 19:51:26 发布
本文详细介绍了快速排序算法的实现过程,包括分区操作、递归排序及主函数的使用。示例代码展示了如何对整数数组进行排序,并在排序完成后输出中位数。这个算法在信息技术领域中广泛应用于数据处理和效率优化。
1951





