问题:
给定两个有序数组,求他们的中位数。(即合并后的中位数)
算法简单描述:
假设两个数组为: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的。
附加问题:
如果是多个数组呢?
问题:
给定两个有序数组,求他们的中位数。(即合并后的中位数)
算法简单描述:
假设两个数组为: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的。
附加问题:
如果是多个数组呢?