NYOJ 124 中位数(水题,nth_element()使用练习)

原创 2015年07月06日 22:08:29

中位数

时间限制:3000 ms  |            内存限制:65535 KB
难度:2
描述

一组数据按从小到大的顺序依次排列,处在中间位置的一个数叫做中位数。

比如 1 5 10 11 9  其中位数就是9.因为排序过后,9处在中间位置。

现在给你一些数,请你求出其中位数。

输入
第一行输入一个整数T(1<=T<=1000)表示测试数据的组数。
随后的一行是一个奇数M,表示该组测试数据中共有M(1<=M<=1000)个数。
随后的一行有M个互不相同的整数,这些整数都不大于10000且不小于-10000。
输出
对于每组测试数据输出一个整数,表示这M个数的中位数。
样例输入
1
5
1 5 10 11 9
样例输出
9

 

水A法,直接排序找中间值:

 

#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
	int t,n,i,a[1010];
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d",&n);
		for(i=0;i<n;i++)
		   scanf("%d",&a[i]);
		sort(a,a+n);
		printf("%d\n",a[n/2]);
	}
	return 0;
}


 

 

nth_element()函数法(因为nth_element()只是对第n大的数经行排序,所以会比sort优化很多)

了解nth_element()函数请点击:点击打开链接

 

代码如下:

 

#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
	int t,n,i,a[1010];
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d",&n);
		for(i=0;i<n;i++)
		   scanf("%d",&a[i]);
		nth_element(a,a+n/2,a+n);
		printf("%d\n",a[n/2]);
	}
	return 0;
} 


 

 

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。如有错误,欢迎指出~(@^_^@)~

相关文章推荐

STL中的nth_element()方法的使用

STL中的nth_element()方法的使用 通过调用nth_element(start, start+n, end) 方法可以使第n大元素处于第n位置(从0开始,其位置是下标为 n的元素),并且比...

HDU 1173.采矿【不水的水题】【中位数】【5月26】

采矿 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm...

STL中的nth_element()方法的使用

STL中的nth_element()方法的使用 通过调用nth_element(start, start+n, end) 方法可以使第n大元素处于第n位置(从0开始,其位置是下标为 n的元素),并且比...

2017多校一 1008题 hdu 6040 Hints of sd0061 排序 STL nth_element

题目链接 题意: 给定一串数字 a 与若干次询问 x(通过 b 数组给出),每次输出 a 中的 第 (x+1) 小数字 学了一招 nth_element, nth_element is a...

二分查找-两已排序数组中找中位数二题

第一题来自于《算法导论》第九章习题 9.3-8. 已知两个已排序数组X[n], Y[n](假设升序),问在时间O(lgn)内找到全部2n个数中的中位数。 给了提示时间O(lgn),那么必定使用二分查找...

【NOIP 模拟题】中位数(规律+递推)

路漫漫,檐雪融

对有限数组进行计数排序和求一个无序数组的中位数——题集(十八)

对有限数组进行计数排序和求一个无序数组的中位数——题集(十九) 今天分享一下,实现对有限数组进行计数排序和求一个无序数组的中位数的代码实现和测试用例。 数组定义为:int a[] = {12,13,1...

牛客网刷题笔记--剑指offer(数据流中的中位数)

题目描述 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。 ...

HDU 5701 中位数计数 (暴力 思维题)

HDU 5701 中位数计数 (暴力 思维题)

NOIP模拟题 2016.10.29 [DP] [中位数相关] [折半搜索]

T1: 题意:求1~n的排列中逆序对的个数为k的排列数。DP,再求简洁表达式即可。#include #include #include #include #include #include #inc...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)