首页 > 学历类考试
题目内容 (请给出正确答案)
[主观题]

教材63页代码2.29中的二路归并算法merge(),反复地通过new和delete操作申请和释放辅助空间。然而实验统计表明,这类操作的实际时间成本,大约是常规运算的100倍,故往往成为制约效率提高的瓶颈。试改写该算法,通过尽量减少此类操作,进一步优化整体效率;

查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“教材63页代码2.29中的二路归并算法merge(),反复地…”相关的问题
第1题
设有n个待排序元素存放在一个不带表头结点的单链表中,每个链表结点只存放一个元素,头指针为r。
试设计一个算法,对其进行二路归并排序,要求不移动结点中的元素,只改各链结点中的指针,排序后r仍指示结果链表的第一个结点。(提示:先对待排序的单链表进行一次扫描,将它划分为若干有序的子链表,其表头指针存放在一个指针队列中。当队列不空时重复执行,从队列中退出两个有序子链表,对它们进行二路归并,结果链表的表头指针存放到队列中。如果队列中退出一个有序子链表后变成空队列,则算法结束。这个有序子链表即为所求)。

点击查看答案
第2题
参照教材26页代码1.14中迭代版fibI()算法,实现支持如下接口的Fib类。

参照教材26页代码1.14中迭代版fibI()算法,实现支持如下接口的Fib类。

点击查看答案
第3题
根据教材2.8.3节所给递推关系以及边界条件试证明,如教材62页代码2.28所示mergeSort()算法的运行时间T(n)=o(nlogn)。

点击查看答案
第4题
实际上,trivialMedian()算法(教材343页代码12.7)只需迭代(n1+n2)/2步即可终止。a)照此思路,改进该算法;b)如此改进之后,算法总体的渐进时间复杂度是否有所降低?

点击查看答案
第5题
考查中序遍历迭代式算法的第三个版本(教材131页代码5.18)。试继续改进该算法,使之不仅无需辅助栈,而且也无需辅助标志位。

点击查看答案
第6题
a)基于教材346页代码12.9中的median()算法,添加整型输入参数k,实现在S1∪S2中选取第k个元素的功能;b)新算法的时间复杂度是多少?

点击查看答案
第7题
如教材80页代码3.19所示,考查插入排序算法List::insertionSort()。a)若输入列表为(61,60,59,...,5,4,3,2,0,1,2),则共需要做多少次关键码比较?b)试通过实测验证你的结论。

点击查看答案
第8题
教材32页代码2.2的copyFrom()算法中,目标数组_elem[]是通过new操作由系统另行分配的,故可保证在物理上与来源数组A[]相互独立,若不能保证这种独立性,该算法需要做哪些调整?

点击查看答案
第9题
考查教材39页代码2.10中的无序向量查找算法find(e,lo,hi)。a)在最好情况下,该算法需要运行多少时间?为什么?b)若仅考查成功的查找,则平均需要运行多少时间?为什么?

点击查看答案
第10题
中序遍历迭代式算法的第三个版本(教材131页代码5.18),需反复地调用succ()接口以定位直接后继,从而会相应地增加计算成本。试问,该算法的渐进时间复杂度是否依然保持为o(n)?若是,请给出证明;否则试举一例。

点击查看答案
第11题
考查教材37页代码2.7中的permute()算法,假设rand()为理想的随机数发生器,试证明:a)通过反复调用permute()算法,可以生成向量V[0,n)的所有n!种排列:b)由该算法生成的排列中,各元素处于任一位置的概率均为1/n;c)该算法生成各排列的概率均为1/n!。

点击查看答案
退出 登录/注册
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改