摘要: 本题要求时间复杂度为log(m+n),不让合并用额外的空间:算法描述:1 选定两个数组A,B并计算长度,根据长度和m+n是偶数还是奇数,分为两种查找中位的方式;如果和为偶数:Value[(m+n)/2]+Value[(m+n)/2+1]如果为奇数:Value[(m+n)/2]2 然后通过迭代计算中位数通过假定A长度小于B,然后选择每个数组的中间k/2元素,如果A的中位数,小于B的中位数,则A中位数前面的元素都小于value(k),这样重新选择A的起始点,并减去k值为k-pa;如果,B中的小,这让B的长度减去pb,然后重新开始;重视让A的长度小于B的长度;k每次递减,m,n分别表示数组剩余长度; 阅读全文
posted @ 2014-04-08 23:25 曹守鑫 阅读(246) 评论(0) 推荐(0)