#include <iostream> #include <math.h> #include <iomanip> using namespace std; int main() { int N; long long n; double mid; cin>>N; if((N>=1)&&(N<=250000)) { int arr[N]; //存入数组 for(int i=1;i<=N;i++) { cin>>n; if((n>0)&&(n<(pow(2,32)-1))) { arr[i]=n; } else{ // cout<<"error"<<endl; break; } } //给序列排序,采用冒泡法 if((n>0)&&(n<(pow(2,32)-1))) { for(int j=1;j<=(N-1);j++) { for(int i=1;i<=(N-j);i++) { if(arr[i]>arr[i+1]) { int t; t=arr[i]; arr[i]=arr[i+1]; arr[i+1]=t; } } } //判断奇数和偶数,输出中位数 if(N%2==0) { mid=(arr[N/2]+arr[N/2+1])*1.0/2.0; cout<<fixed<<setprecision(1)<<mid<<endl; } else { mid=arr[N/2+1]; cout<<fixed<<setprecision(1)<<mid<<endl; } } } return 0; }
Problem Description
给定一个由N个非负整数构成的序列,我们来定义一下序列的中位数,如果N是奇数,在对序列排序后,中位数就是最中间的那个数,即排序后,中位数的位置为(N+1)/2,这里序列的位置从1开始。如果N是偶数,则中位数为排序后中间两个数和的一半,即N/2和(N/2)+1处。但是需要注意的是原始序列可能是未排序的。
你的任务就是编程找出给定序列中的中位数。
Input
第一行只有一个整数N,表示序列的长度。接下来就是N个数,每个数占一行,序列的长度范围为1到250000。序列中的每个数都是不超过2^32 – 1(包括它)的正整数。
Output
输出中位数,保留小数点后一位。
Sample Input
4 3 6 4 5
Sample Output
4.5
相关推荐
3. 由分组资料确定中位数由组距数列确定中位数,应先按的公式求出中位数所在组的位置,然后再按下限公式或上限公式确定中位数。 下限公式:Me = L + (fm / 2 - 1) / d × (U - L) 上限公式:Me = U - (fm / 2 - 1)...
然后,我们将median_A与B中的元素进行比较,目的是找到一个分割点,使得序列A的元素都在序列B的元素之前或者之后,这样就可以保证分割后的两部分序列大小相等或相差1,从而找到整体序列的中位数。 具体步骤如下: ...
现有两个等长升序序列A和B,试设计一个在时间和空间两方面都尽可能高效的算法,找出两个序列的中位数。
13,15,17,19),其中位数是15,若b=(2,4,6,8,20),其中位数为6。...长有序序列的中位数是含它们所有元素的有序序列的中位数,例如a、b两 个有序序列的中位数为11。设计一个算法求给定的两个有序序列的中 位数。
### 求2n个数的中位数 #### 一、问题背景及目标 假设我们有两个数组`X[0:n-1]`和`Y[0:n-1]`,这两个数组各含有`n`个已经按照升序排列好的数字。我们的任务是设计一种时间复杂度为`O(log n)`的高效算法来找到这两个...
- 求中位数的关键步骤是先对数据进行排序,然后确定中间位置的数值。 - 中位数不受极端值的影响,能较好地反映数据的中间水平。 4. **中位数的应用示例** - 在10名工人生产零件的例子中,需要先排序,然后找到...
3. 第三题同时求中位数和众数,答案是B,2和4,2出现了两次,是众数,而数据排序后4位于中间位置。 4. 第四题给出了PM2.5的检测数据,需要找到中位数,答案是A,18微克/立方米,因为这是排序后中间的数值。 5. 第五...
1. **中位数**:中位数是一组数据按大小顺序排列后处于中间位置的数。在奇数个数据中,中位数是正中间的那个数;在偶数个数据中,中位数是中间两个数的平均值。它可以反映出数据的集中趋势,不受极端值的影响。 2. ...
C语言程序设计-将两个两位数的正整数a、b合并形成一个整数放在c中;合并的方式是: 将a数的十位和个位数依次放在c数的个位和百位上, b数的十位和个位数依次放在c数的十位和千位上;例如: 当a=45,b=12, 调用该函数后...
【Python 实现在无序数组中找到中位数的方法】 在Python编程中,寻找无序数组的中位数是一项常见的任务,特别是在数据分析和算法设计中。中位数是将一组数值按大小顺序排列后位于中间位置的数,对于偶数个数值,中...
4. 生成三位数时,从三个列表中依次取出数字,组合成三位数。 以下是一个简化的C#代码示例: ```csharp using System; using System.Collections.Generic; class Program { static void Main() { int[] ...
- 丙、A.B + A.(B + C) + B.(B + C) = A + B.C,正确,这是基于布尔代数中的分配律。 - 戊、(G + H).(G + H)'.(G + H) = 0,正确,因为 (G + H) 和它的补 (G + H)' 相乘等于 0。 ### 5. 组合逻辑电路 #### 5.1 ...
标题中的“21067010433-王珍-输出随机三位数-解题报告1”表明这是一个关于编程题目解答的文档,可能是某个编程课程或竞赛的作业,作者是王珍,主要任务是生成并输出一个三位正整数的各个位数。 描述部分进一步明确...
C语言程序设计-将两个两位数的正整数a、b合并形成一个整数放在c中;合并的方式是:将a数的十位和个位数依次放在c数的百位和个位上, b数的十位和个位数依次放在c数的十位和千位上;例如:当a=45,b=12;调用该函数后,...
1. **中位数**:中位数是一组数据按大小顺序排列后,位于中间位置的数。如果数据的个数是奇数,那么中位数就是正中间的那个数;如果是偶数,则中位数是中间两个数的平均值。中位数不受极端值的影响,能够较好地反映...
这份“一年级下数学课件(B)-做个百数表-新北师大版.ppt”是针对小学一年级学生设计的数学教学资源,主要目的是帮助孩子们理解和掌握百数表的基本概念和规律。百数表是一种将100以内的数字以网格形式排列的图表,有...
C语言程序设计-将两个两位数的正整数a、b合并形成一个整数放在c 中;合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上, b数的十位和个位数依次放在c数的个位和百位上; 例如:当a=45,b=12;调用该函数后...
这些题目涉及的是初中数学中的统计学概念,特别是平均数、中位数和众数的运用。在解决这类问题时,我们需要理解这些统计量的基本定义和性质。 平均数是一组数的总和除以数的个数,它代表了数据集的平均水平。中位数...
克鲁斯卡尔检验 计算中位数相等的Kruskal-Wallis检验。... 对于a数值观测值的输入数组a , b ,...,此函数计算Kruskal-Wallis秩和检验,该检验检验所有k组中位数均相同的零假设。 该函数返回一个对象,其中
中位数 b 是将数据从小到大排列后处于中间位置的数,由于有 40 个数据,所以中位数是第 20 个和第 21 个数的平均值,即 b=(80+80)÷2=80. 所以 (a-b)²=(80-80)²=0²=0.(3)这个班的数学水平可以通过平均成绩、众数...