openjudge 寻找中位数

来源:互联网 发布:导出 excel js 插件 编辑:程序博客网 时间:2024/05/22 14:41

这是题目:

2:寻找中位数
查看 提交 统计 提问
总时间限制: 1000ms 内存限制: 65536kB
描述
在N(1<=N<10,000且N为奇数)个数中,找到中位数。

输入
第1行:N

第2至N+1行:每行是一个整数
输出
第一行:中位数
样例输入
5
2
4
1
3
5
样例输出
3


===========================================================================

这...没什么好说的,快速排序函数,必须对快排函数十分熟练才行。


代码清单:

#include <iostream>#include <cstdio>using namespace std;#define MAXN 10000void quickSort(int arr[], int m, int n){int pivot=arr[(m+n)/2];int i=m;int j=n;int temp;do {while(arr[j]>pivot && j>m)--j;while(arr[i]<pivot && i<n)++i;if (i<=j){temp=arr[j];arr[j]=arr[i];arr[i]=temp;--j;++i;}} while (i<=j);if(i<n)quickSort(arr, i, n);if(j>m)quickSort(arr, m, j);}int main(){freopen("D:\\in.txt", "r", stdin);  freopen("D:\\out.txt", "w", stdout);  int n;int a[MAXN];scanf("%d", &n);for (int i=0; i<n; ++i)scanf("%d", &a[i]);quickSort(a, 0, n-1);printf("%d", a[n/2]);return 0;}


0 0
原创粉丝点击