【特惠】26考研
红包
【考研】专业课HOT
26考研
【MBA】在职考研
【规划】择校备考
【报录比】查询
计划
【真题】全套解析
资料
【申硕】同等学力
预备
【大纲】5500词汇
免费
【在线】英语测评
免费
【大纲】最新大纲
精
扫码加入训练营
牢记核心词
学习得礼盒
【题目】
42.(15分)一个长度为L(L≥1)的升序序列S,处在第[L/2]个位置的数称为s的中位数。例如,若序列S1:(11,13,15,17,19),则S1的中位数是15。两个序列的中位数是含它们所有元素的升序序列的中位数。例如,若S2=(2,4,6,8,20),则S1和S2的中位数是11。现有两个等长升序序列A和B,试设计一个在时间和空间两方面都尽可能高效的算法,找出两个序列A和B的中位数。
要求:
(1)给出算法的基本设计思想。
(2)根据设计思想,采用C或C++或Java语言描述算法,关键之处给出注释。
(3)说明你所设计算法的时间复杂度和空间复杂度。
【答案要点】:
(1)给出算法的基本设计思想:(5 分)
分别求两个升序序列A、B 的中位数,设为a 和b。若a=b,则a 或b 即为所求的中位数;否则,舍弃a、b 中较小者所在序列之较小一半,同时舍弃较大者所在序列之较大一半,要求两次舍弃的元素个数相同。在保留的两个升序序列中,重复上述过程,直到两个序列中均只含一个元素时为止,则较小者即为所求的中位数。
(2)算法实现:(8 分)
int M _ Search(int A[ ],int B[ ],int n){
int start1, end1, mid1, start2, end2, mid2 ;
start1 =0;end1 =n-1 ;
start2 = 0 ; end2 = n- 1 ;
while(start1 ! = end1 || start2 ! = end2)
{ mid1 = (start1 +end1 )/2 ;
mid2 = ( start2 +end2 )/2 ;
if(A[mid1 ] = =B[mid2]) return A[mid1 ] ;
if( A [ mid1 ]
{//分别考虑奇数和偶数,保持两个子数组元素个数相等
if((start1+end1)%2==0){//若元素为奇数个
start1=mid1; //舍弃A 中间点以前的部分且保留中间点
end2=mid2; //舍弃B 中间点以后的部分且保留中间点
}
else{ //若元素为偶数个
start1=mid1+1;//舍弃A 的前半部分
end2=mid2; //舍弃B 的后半部分
}
}
else{
if((start1+end1)%2=:0){//若元素为奇数个
end1=mid1; //舍弃A 中间点以后的部分且保留中间点
start2=mid2; //舍弃B 中间点以前的部分且保留中间点
}
else{//若元素为偶数个
end1=mid1; //舍弃A 的后半部分
start2=mid2+1;//舍弃B 的前半部分
}
}
}
return A[start1]
}
(3)上述所给算法的时间、空间复杂度分别是0(log2n)和0(1)。(2 分)
【计算机】资料这里有↑↑↑
本文关键字: 一个长度为L(L≥1)的升序序列S
添加班主任领资料
添加考研班主任
免费领取考研历年真题等复习干货资料
推荐阅读
2025年考研初试结束后,新东方在线为大家整理了:2025考研计算机专业基础综合真题答案:综合应用题,供大家参考,同时也为大家提供了电
2025年考研初试结束后,新东方在线为大家整理了:2025考研计算机专业基础综合真题答案:单选题,供大家参考,同时也为大家提供了电子版
2025年考研初试结束后,新东方在线为大家整理了:2025考研计算机专业基础综合真题答案:计算机网络,供大家参考,同时也为大家提供了电
2025年考研初试结束后,新东方在线为大家整理了:2025考研计算机专业基础综合真题答案:操作系统,供大家参考,同时也为大家提供了电子
2025年考研初试结束后,新东方在线为大家整理了:2025考研计算机专业基础综合真题答案:计算机组成原理,供大家参考,同时也为大家提供
资料下载
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
新东方在线考研资料合集
下载方式:微信扫码,获取网盘链接
目录:
1.2013-2023年近10年政数英真题及解析PDF版(新东方)
2.2013-2023年专业课考试历年真题及解析PDF版
3.24考研复习备考资料大合集:大纲+备考资料+词汇书+考前押题+自命题
资料介绍:
1.2013-2023年近10年政数英真题及解析PDF版(新东方)
、
2.2013-2023年专业课考试历年真题及解析PDF版
3.24考研复习备考资料大合集
3.24考研复习备考资料:考研大纲
3.24考研复习备考资料:政数英备考资料+自命题真题
------------------
考研备考过程中,尤其是专业课部分,参考往年的考试真题,对于我们的复习有更好的帮助。北京大学考研真题资料都有哪些?小编为大家进行了汇总。
北京大学考研真题资料-公共课
北京大学考研真题资料-专业课
以上就是关于“北京大学考研真题资料下载(历年汇总)”的整理,更多考研资料下载,请关注微信获取下载地址。
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
扫码添加【考研班主任】
即可领取资料包
阅读排行榜
相关内容