C++中位数

中位数

题目描述
给定一个有N个整数的递增序列S,中位数就是中间位置的数。例如序列S1={11,12,13,14}中12就是序列S1的中位数,又如序列S2={9,10,15,16,17}数字15就是序列S2的中位数.两个序列的中位数是指,两个序列所有元素组成的非递减序列的中位数。例如上述序列S1和S2的中位数是13.给定两个递增的整数序列,要求找出它们的中位数。

输入格式
输出包含多组测试数据(不多于10组)

每组测试数据包含两行,每一行是一个序列。每个序列的第一个数字是一个整数N(N≤1000000),表示序列的大小,接下来是N个数字。所有的数字在int范围内。

输出格式
对于每组测试数据输出一行,一个整数,表示两个序列的中位数

输入输出样列
输入样例1:
4 11 12 13 14

5 9 10 15 16 17

输出样例1:
13

【耗时限制】1500ms 【内存限制】128MB
思路:中位数不就是中间的数吗?一个分治法轻松搞定。
注意:本题为多组数据,需运用while。

上代码:

#include<bits/stdc++.h>
using namespace std;
const int N=1000010;
int n,m,a[N],b[N],ans
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值