题目内容
(请给出正确答案)
[主观题]
a)基于教材346页代码12.9中的median()算法,添加整型输入参数k,实现在S1∪S2中选取第k个元素的功能;b)新算法的时间复杂度是多少?
查看答案
如果结果不匹配,请 联系老师 获取答案
设采用实现如教材48页代码2.21所示的二分查找binSearch()算法版本A,针对独立均匀分布于[0,2n]内的整数目标,在固定的有序向量(1,3,5,...,2n-1)中查找。
a)若将平均的成功和失败查找长度分别记作S和F,试证明:(S+1)•n=F•(n+1);
b)上述结论,是否适用于binSearch()算法的其它版本?为什么?
c)上述结论,是否适用于fibSearch()算法的各个版本?为什么?
d)若待查找的整数按照其它的随机规律分布,以上结论又应如何调整?
为使二叉搜索树结构支持多个相等数据项的并存,需要增加一个BST::searchAll(e)接口,以查找出与指定目标e相等的所有节点(如果的确存在)。
a)试在BST模板类(教材185页代码7.2)的基础上,扩充接口BST::searchAll(e)。要求该接口的时间复杂度不超过o(k+h),其中h为二叉搜索树的高度,k为命中节点的总数;
b)同时,改进原有的BST::search(e)接口,使之总是返回最早插入的节点e—即先进先出。