#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. **中位数**:中位数是一组数据按大小顺序排列后,位于中间位置的数。如果数据的个数是奇数,那么中位数就是正中间的那个数;如果是偶数,则中位数是中间两个数的平均值。中位数不受极端值的影响,能够较好地反映...
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)这个班的数学水平可以通过平均成绩、众数...
2. **元素类型**:IRIG-B编码中的元素可以分为三种类型: - **二进制零(0)** - **二进制一(1)** - **位置标记(P)** 3. **帧结构**:每一帧以两个连续的位置标记作为帧参考标记(R),接着是10组每组10个...