求两个有序数组的中位数

问题:

给定两个有序数组,求他们的中位数。(即合并后的中位数)

算法简单描述:

假设两个数组为:Orda_1,Orda_2。先对比这个数组的中间数的大小,假设Orda_1的中间数为a_1,Orda_2的中间数为a_2,如果a_1 >= a_2,那么两个数组的中间数肯定在Orda_1数组前半段和Orda_2数组后半段中,接着再把Orda_1前半段和Orda_2后半段当做新的两个有序数组,重复前面的步骤,直至递归结束。 复杂度应该是log2的。

 

附加问题:

如果是多个数组呢?

posted @ 2014-01-06 10:42  ywl925  阅读(2481)  评论(0编辑  收藏  举报
Copyright at 2012 yangwenlong