`

B - 求中位数

阅读更多
#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

 

 

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    中位数的计算.pdf

    3. 由分组资料确定中位数由组距数列确定中位数,应先按的公式求出中位数所在组的位置,然后再按下限公式或上限公式确定中位数。 下限公式:Me = L + (fm / 2 - 1) / d × (U - L) 上限公式:Me = U - (fm / 2 - 1)...

    设计一个算法求两个有序序列的中位数.cpp

    13,15,17,19),其中位数是15,若b=(2,4,6,8,20),其中位数为6。...长有序序列的中位数是含它们所有元素的有序序列的中位数,例如a、b两 个有序序列的中位数为11。设计一个算法求给定的两个有序序列的中 位数。

    两个序列的中位数

    现有两个等长升序序列A和B,试设计一个在时间和空间两方面都尽可能高效的算法,找出两个序列的中位数。

    C语言程序设计-将两个两位数的正整数a、b合并形成一个整数放在c中;合并的方式是

    C语言程序设计-将两个两位数的正整数a、b合并形成一个整数放在c中;合并的方式是: 将a数的十位和个位数依次放在c数的个位和百位上, b数的十位和个位数依次放在c数的十位和千位上;例如: 当a=45,b=12, 调用该函数后...

    资源编号001-数字化转型数据集

    年份:2000-2022 维度:上市公司企业 指标包括: 股票代码 年份 行业代码 行政...数字化转型程度-B_均值 同行业同群-数字化转型程度-B_中位数 同省份同群-数字化转型程度-B_均值 同省份同群-数字化转型程度-B_中位数

    三位数乘两位数20150515151124_E9B5AC0B-968A-EE21-DF69-D88C74F08833.ppt

    三位数乘两位数20150515151124_E9B5AC0B-968A-EE21-DF69-D88C74F08833.ppt

    C#写的代码1-9组成不重复三位数,比例是1:2:3

    4. 生成三位数时,从三个列表中依次取出数字,组合成三位数。 以下是一个简化的C#代码示例: ```csharp using System; using System.Collections.Generic; class Program { static void Main() { int[] ...

    C语言程序设计-将两个两位数的正整数a、b合并形成一个整数放在c中;合并的方式是:将a数的十位和个位数依次放在c数的百位

    C语言程序设计-将两个两位数的正整数a、b合并形成一个整数放在c中;合并的方式是:将a数的十位和个位数依次放在c数的百位和个位上, b数的十位和个位数依次放在c数的十位和千位上;例如:当a=45,b=12;调用该函数后,...

    单片机C51-绝对地址 16位数相减

    在C51中,我们可以使用`unsigned char`类型来表示8位的字节,`unsigned int`类型来表示16位的数。 进行16位数相减操作时,我们通常需要考虑溢出的情况。C51中,`unsigned int`类型的运算不会产生负数结果,而是会...

    leetcode04_寻找两个正序数组的中位数解法.rar

    leetcode04_寻找两个正序数组的中位数解法.rar !!!CSDN的一个特性: 即使我设置成免费下载,被下载的次数多了之后也会变成付C币下载的了,这个很头疼. !!!因此如果没有C币但想要下载的朋友可以在b站视频下留言给我,留下...

    C语言程序设计-将两个两位数的正整数a、b合并形成一个整数放在c 中;合并的方式是:将a数的十位和个位数依次放在c数的千位和十

    C语言程序设计-将两个两位数的正整数a、b合并形成一个整数放在c 中;合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上, b数的十位和个位数依次放在c数的个位和百位上; 例如:当a=45,b=12;调用该函数后...

    MH-Z19B-二氧化碳气体传感器

    在MH-Z19B中,UART协议一般包括起始位、数据位、校验位和停止位,数据传输格式为ASCII码。用户可以通过发送特定命令来读取CO2浓度值,这些命令包括查询当前浓度、设置工作模式等。 具体通信流程如下: 1. 主设备向...

    2020-算法设计与分析-期末试题1

    - (b) 可以使用快速选择算法,它是一种基于快速排序的算法,可以在最坏情况下达到O(n log n)的时间复杂度来寻找权重中位数。 - (c) 分治算法可以将问题分解为两半,分别找到左右两边的权重中位数,然后比较确定...

    kruskal-test:计算中位数相等的Kruskal-Wallis检验

    克鲁斯卡尔检验 计算中位数相等的Kruskal-Wallis检验。... 对于a数值观测值的输入数组a , b ,...,此函数计算Kruskal-Wallis秩和检验,该检验检验所有k组中位数均相同的零假设。 该函数返回一个对象,其中

    万利STM3210B-LK1 实验4 串口实验

    在本文中,我们将深入探讨“万利STM3210B-LK1 实验4 串口实验”这一主题,这是STM32嵌入式系统学习中的一个重要环节。STM32系列微控制器由意法半导体(STMicroelectronics)生产,广泛应用在各种电子设备中,而串口...

    三位数中既是完全平方数且两位数相同

    当我们探讨三位数中既是完全平方数且两位数相同的数时,我们需要深入理解完全平方数的性质,并结合数论的方法来找出满足条件的数。 首先,我们定义一个三位数的结构为 ABC,其中 A、B 和 C 分别代表百位、十位和个...

    海量数据查找数据问题

    本篇文章将详细探讨如何解决"海量数据查找数据问题",并着重讨论如何在海量数据中寻找中位数以及查找特定的数。 首先,我们来关注如何在海量数据中找到中位数。中位数是一组数据的代表值,它能够反映出数据的整体...

    2000-2022年上市公司数字化转型同群效应数据.zip

    A_中位数、同行业同群-数字化转型程度-B_均值、同行业同群-数字化转型程度-B_中位数、同省份同群-数字化转型程度-B_均值、同省份同群-数字化转型程度-B_中位数(其中A为吴非的76个数字化相关词频统计,B为赵宸宇的99...

    PMS132B 中文规格书.pdf

    PMS132B 是一款 8 位 OTP 型单片机,带有 12 位 ADC,广泛应用于各种电子设备中。下面是对 PMS132B 的详细说明: 1. 功能 PMS132B 是一款高性能的 8 位 OTP 型单片机,具有 12 位 ADC,可以满足各种应用场景的需求...

Global site tag (gtag.js) - Google Analytics