关于两个数组求中位数

wangxy00 2012-12-08 10:07:41
这个问题网上有很多博客和帖子,但我看来看去有个疑问。
先说两个等长数组合并后的中位数定义,假设两个数组A和B,首先两个等长数组合并后肯定是偶数个元素,那么中位数就是合并后中间的两个数(或者这两个数的平均值)。
网上看了好多博客,求得的结果都是A中某一元素和B中某一元素一起作为结果。假设有两个数组
A:1 2 7 9 10
B:3 4 5 6 8
合并后中位数应该是5 和 6,两个数都在数组B中,并不是A、B各一个数。

网上很多人写的迭代结束条件都是找到了a=b或者最后上下数组长度都为1,我觉得数组长度为2了就应该结束迭代了。不知道想的对不对,还请各位指教。
...全文
260 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
城序缘 2012-12-09
  • 打赏
  • 举报
回复
这个问题有很多做法,找到一种算法复杂度O(logn),能正确显示结果的就行
Binzo 2012-12-08
  • 打赏
  • 举报
回复
中位数:奇数---1个数;偶数---2个。
benbendeda 2012-12-08
  • 打赏
  • 举报
回复
这样的算法有很多,关键是要自己创新,优化别人的算法
wangxy00 2012-12-08
  • 打赏
  • 举报
回复
不好意思,补充下,a和b表示从A和B中取出来的中间值。
derekrose 2012-12-08
  • 打赏
  • 举报
回复
提问是一门艺术,我感觉这本书很不错,希望楼主可以读一下,还有你最好贴上代码,不然你说的ab都是啥啊

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧