700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 给定一个整数序列 求中位数

给定一个整数序列 求中位数

时间:2021-06-11 06:09:21

相关推荐

给定一个整数序列 求中位数

问题描述:

给定一个整数序列,求中位数。如果序列个数为奇数,中位数为升序的中间位置,如果是偶数,这位升序的中间两个数的平均值。

输入:

输入包含多组测试数据,每一组第一行为n(n<104)表示这个序列的个数,接下来有n个整数k(0<k<231-1)

输出:

输出这个序列的中位数

样例输入:

9

1 4 2 5 9 7 8 3 6

样例输出:

5

#include <bits/stdc++.h>using namespace std;#define MAX 10000int a[MAX];void quicksort(int *sta, int *end){int *left = sta, *right = end-1;if(left < right){int key = *left;while(left < right){while(left < right && *right > key) right--;*left = *right;while(left < right && *left < key) left++;*right = *left; }*left = key;quicksort(sta, left);quicksort(left+1, end) ;}}int main(){int n;cin >> n;for(int i=0; i<n; i++) cin >> a[i];quicksort(a, a+n);if(n){if(n%2==1) cout << a[n>>1];else cout << (a[n>>1]+a[(n-1)>>1])/2.0;}return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。