首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
在数组中,某个数字减去它右边的数字得到一个数对之差。求所有数对之差的最大值。例如,在数组{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
37
问题
在数组中,某个数字减去它右边的数字得到一个数对之差。求所有数对之差的最大值。例如,在数组{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://jikaoti.com/ti/mcfjFFFM
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
西欧早期资产阶级反封建斗争以反天主教会的方式进行,主要原因是()①天主教会是最有势力的封建主集团②天主教会是封建的精神工具③天主教会日益腐败④近代自然科学的兴起
胡适与李大钊进行“问题与主义之争”的主战场是()。
关于德意志宗教改革的说法不正确的是()
1979年11月,中共中央委托()主持起草《关于建国以来党的若干历史问题的决议》。
阅读下列史料,并回答问题:在琶勒尼斯(注:地名)一役获胜后,他(庇西特拉图)便占领政府,并解除人民武装;现在他已能稳定地握住僭主政权,并且取得那克索斯。以吕格达密斯为统治者。他解除人民武装的方法是这样的:他在塞修斯庙举行了一个武装的阅兵式,同时举行一次民
北约和华约两个组织对峙近半个世纪,其影响是()。
下列描述中,属于冯.诺依曼体系结构的特点是()。①采用流水线技术;②指令和数据均以二进制表示;③存储程序并且存储时不区别数据和指令。
已知某32位二进制机器数为11000000000000000000000000000000,试计算在下列各种编码方式下其代表的真值。(1)原码定点小数;(2)补码定点小数;(3)反码定点小数;(4)IEEE754标准短
假设某计算机的存储系统由Cache和主存组成j某程序执行过程中访存1000次,其中访问Cache缺失(未命中)50次,则Cache的命中率是()。
某计算机系统字长为32位,包含2个选择通道和1个字节多路通道,每个选择通道上连接了2台磁盘机和2台磁带机,字节多路通道上连接了2台行式打印机、2台读卡器、10台终端。假定各设备的传输率如下:磁盘机:800KB/s磁带机:200KB/s
随机试题
A.Thequestionistooeasytoanswer.B.Don’tanybodysayanythingaboutthismatter.C.Don’taskwhatyourschoolcandofor
患者,男性,35岁,因直肠癌入院。右腿因小儿麻痹有严重的肌肉萎缩。医生应对患者这一生理问题,遵守哪项原则
颅中窝骨折护理措施不正确的是
对于已完工的标线,主要的检测项目包括()。
宽大也不是宽大无边,而是按《刑法》规定,对那些危害不大,能够认罪悔改的犯罪分子,实行宽大处理。()
成语中的数字运用很多,如一鼓作气、百废俱兴。非整数也进入了成语,如半途而废、半壁江山。还有两个成语:一举两得、一箭双雕。“两”和“双”是数字“2”的不同表示法。多数成语都是由四个文字组成的,数目字有时还被“连用”,如五光十色、三头六臂。也有成语纯粹由数目字
过去,城市规模基本上是由政策决定的。如果把城市当作一个________的系统,它的吞吐、消耗以及内部运转,所有的生态流是完全能够定量计算的。我们的城市设计,必须跟周围的生态环境形成良好的共生关系,与其生态承载力相________。根据周围生态承载力确立城市
请选出正确答案。例如:女:该加油了。去机场的路上有加油站吗?男:有,你放心吧。问:男的主要是什么意思?A去机场B快到了C油是满的D有加油站√
Mountainbikingdemandshill—walkingstrengthaswellastrack-ridingskills.Initially,choosegentleroutesamongfamiliart
Onetypeofpersonthatiscommoninmanycountriesistheonewhoalwaystriestodoaslittleaspossibleandtogetasmuch(
最新回复
(
0
)