两个排序数组合并第k或前k个最小值问题

本文探讨了如何在O(lgn)时间复杂度内找到两个已排序数组的中位数,以及如何寻找两个数组的第k小元素。此外,还讨论了在等长升序数组中找到前K个最小A[i]+B[j]值的最小堆解决方案,以及涉及多个数组求和的最小k值问题。
摘要由CSDN通过智能技术生成

求最小一般用二分,求前最小一般用堆

偶尔看到一个问题,搜索了一些解法,用来存着

1.X[1..n] 和 Y[1..n]为两个数组,每个都包含n个已排好序的数。给出一个求数组X和Y中所有2n个元素的中位数的O(lgn)时间的算法

 

参考 :http://blog.csdn.net/zhanglei8893/article/details/6314002

分析与解答:

      若中位数位于X中,不妨设为X[k],即在X中有k个元素小于等于中位数,n-k个元素大于等于中位数。由于X[k]为合并后的2n个元素的中位数,则在Y中有n-k个元素小于等于中位数,k个元素大于等于中位数,即

                                       Y[n-k] ≤  X[K] ≤ Y[n-k+1]</

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值