首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于两个数组求中位数解决方法

2013-01-07 
关于两个数组求中位数这个问题网上有很多博客和帖子,但我看来看去有个疑问。先说两个等长数组合并后的中位

关于两个数组求中位数
这个问题网上有很多博客和帖子,但我看来看去有个疑问。
先说两个等长数组合并后的中位数定义,假设两个数组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了就应该结束迭代了。不知道想的对不对,还请各位指教。
[解决办法]
这样的算法有很多,关键是要自己创新,优化别人的算法
[解决办法]
中位数:奇数---1个数;偶数---2个。
[解决办法]
这个问题有很多做法,找到一种算法复杂度O(logn),能正确显示结果的就行

热点排行