两个有序数组中位数

 我来答
机器1718
2022-07-03 · TA获得超过6867个赞
知道小有建树答主
回答量:2805
采纳率:99%
帮助的人:164万
展开全部

输入: 两个有序数列
输出: 总体数列的中位数
要求 时间复杂度 O(log(m+n))
用例: [1,3] [2] ====> The median is 2.0
[1,2] [3,4] ====> The median is 2.5

这个题目要求了时间复杂度。如果不要求时间复杂度,可以直接放到一个整体的数列中,然后用一个排序算法,之后就是一个有序数列的中位数。
但是,要求时间复杂度是 log 形式的,所以一定是分治法。

依旧按照之前的将两个有序数列合为一个有序数列的方法。考虑时间复杂度。
a[n] ①②③...
b[m] ①②③...
c[m+n]
比较 第一个数列的第一个数字和第二个数列的第一个数字,将小的放进新的数列的第一个,知道某一个数列全部没有,之后将另外一个数列剩下的放在后面。即得到了第三个有序数列。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式