首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
在数组中,某个数字减去它右边的数字得到一个数对之差。求所有数对之差的最大值。例如,在数组{2,4,1,16,7,5,11,9}中,数对之差的最大值是11,是16减去5的结果。 (1)给出算法的基本设计思想。 (2)根据设计思想,采用C或C+
在数组中,某个数字减去它右边的数字得到一个数对之差。求所有数对之差的最大值。例如,在数组{2,4,1,16,7,5,11,9}中,数对之差的最大值是11,是16减去5的结果。 (1)给出算法的基本设计思想。 (2)根据设计思想,采用C或C+
admin
2018-07-17
53
问题
在数组中,某个数字减去它右边的数字得到一个数对之差。求所有数对之差的最大值。例如,在数组{2,4,1,16,7,5,11,9}中,数对之差的最大值是11,是16减去5的结果。
(1)给出算法的基本设计思想。
(2)根据设计思想,采用C或C++语言描述算法,关键之处给出注释。
(3)说明你所设计算法的时间复杂度。
选项
答案
分治法。 把数组分成两个子数组,其实没有必要拿左边子数组中较小的数字去和右边子数组中较大的数字作减法。可以想象,数对之差的最大值只可能是下面三种情况之一:①被减数和减数都在第一个子数组中,即第一个子数组中的数对之差的最大值;②被减数和减数都在第二个子数组中,即第二个子数组中数对之差的最大值;③被减数在第一个子数组中,是第一个子数组的最大值。减数在第二个子数组中,是第二个子数组的最小值。这三个差值的最大者就是整个数组中数对之差的最大值。 在前面提到的三种情况中,得到第一个子数组的最大值和第二子数组的最小值不是一件难事,但如何得到两个子数组中的数对之差的最大值?这其实是原始问题的子问题,可以递归地解决。下面是这种思路的参考代码: int MaxDiff_Solutionl(int numbers[], unsigned length) { if(numbers==NULL||lenath<2) return 0; int max,min; return MaxDiffCore(numbers,numbers+length—1,&max,&min); } int MaxDiffCore(int* start,int* end,int* max,int* min) { if(end==start) { *max=*min=*start; return 0; } int* middle=start+(end—start)/2; int maxLeft,minLeft; int leftDiff=MaxDiffCore(start,middle,&maxLeft,&minLeft); int maxRight,minRight, int rightDiff=MaxDiffCore(middle+1,end,&maxRight,&minRight); int crossDiff=maxLeft—minRight; *max=(maxLeft>maxRight)?maxLeft:maxRight; *min=(minLeft<minRight)?minLeft:minRight; int maxDiff=(leftDiff>rightDiff)?leftDiff:rightDiff; maxDiff=(maxDiff>crossDiff)?maxDiff:crossDiff; return maxDiff; }
解析
转载请注明原文地址:https://kaotiyun.com/show/F5Ri777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
下列内容是武则天独创的是()
不属于第三次科技革命新特点的选项是()。
新石器时代的房屋建筑根据环境的不同形成了不同的类型,()地区多为干栏式建筑。
阅读材料,回答问题:材料一:巴尔干半岛和东地中海地区,历来被英国视为大英帝国的生命线。大战结束前后,美国利用种种借口,千方百计渗入这个连接欧亚两大洲的重要战略地区……1947年2月21日,英国向美国国务院发出了结束援助希腊、土耳其的照会,声称国内严重的经
印加人记载事物使用的方法是()。
下列内容,哪些与垄断组织出现有关?()①控制一个或几个部门商品的生产、价格和市场②促进了大工业的发展,在某种程度上适应了生产力发展的需要③干预、控制国家的政治和经济生活④积极向外扩张,从经济上瓜分世界
1925年10月签订《洛迦诺公约》后,法国外长白里安认为:“我国的安全比以往任何时候都更有保障了。”对此说法不正确的一项是()。
下图所示为双总线结构机器的数据通路,IR为指令寄存器,PC为程序计数器(具有自增功能),M为主存(受R/W信号控制),AR为地址寄存器,DR为数据缓冲寄存器,ALU由加、减控制信号决定完成何种操作,控制信号G控制的是一个门电路。另外,线上标注有小圈表示有控
设结点x和y是二叉树中任意的两个结点,在该二叉树的先序遍历序列中x在y之前,而在其后序遍历序列中x在y之后,则x和y的关系是()。
已知AOE网中顶点v1,v2,v3,……v7分别表示7个时间,有向线段a1,a2,a3,……a10。分别表示10个活动,线段旁的数值表示每个活动花费的天数,如下图所示。请填写下面两个表格,并用顶点序列表示出关键路径,给出关键活动。
随机试题
2007年底,甲国驻乙国总领馆的一只邮袋在乙国入境时,被乙国有关部门怀疑内有违禁品,并试图拆开检查。该邮袋上有领馆专用的明显标志。甲、乙两国均为《维也纳领事关系公约》的缔约国,但相互间无其他相关协定。根据公约的规定,下列哪些选项是正确的?(2008—卷一—
物业服务企业资质等级为一级资质时,物业管理专业人员以及工程、管理、经济等相关专业类的专职管理和技术人员不少于()
在化学课程教学过程中.如果学生出现疲劳,无精打采的现象,老师所采取的解决措施应当是()。
为了消除安全隐患、净化社会环境,某派出所根据上级部署对娱乐场所展开集中整治,排查出本辖区设有以下场所,其中开设地点符合相关规定的是:
加拿大研究人员对北美不同地区平均年龄29.4岁的308位志愿者(其中198位是女性)进行了调查,结果发现50.7%的人有互联网拖延症,而且上网时间的47%不是用来工作,而是用来拖延工作。研究表明:白领的拖延情况比蓝领更严重;被雇佣的白领比自由经营的白领更严
卡选什战役(南京大学1998年世界古代中世纪史真题)
Wheredoesthistalkprobablytakeplace?
Withincreasedtaxationandrisingprices,Iamgoingtohaveto______onquitealotofthings-clothes,recordsandsoon.
In1812,theUnitedStatesfoughtthefirstwarwith______afteritbecameanindependentnation.
______areboundmorphemesbecausetheycannotbeusedasseparatewords.
最新回复
(
0
)