首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
在数组中,某个数字减去它右边的数字得到一个数对之差。求所有数对之差的最大值。例如,在数组{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
67
问题
在数组中,某个数字减去它右边的数字得到一个数对之差。求所有数对之差的最大值。例如,在数组{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://www.kaotiyun.com/show/F5Ri777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
关于德国工业革命,说法不正确的是()。
斯大林模式的突出特点是()。
西欧早期资产阶级反封建斗争以反天主教会的方式进行,主要原因是()①天主教会是最有势力的封建主集团②天主教会是封建的精神工具③天主教会日益腐败④近代自然科学的兴起
下列选项中,对东汉度田问题的描述中,不正确的是()
冶铁技术中的“淬火法”在()已开始应用,大大提高了铁器的坚韧和锋利程度。
下列关于第二三次科技革命的说法,不正确的是()。
下面关于新经济政策的说法不正确的一项是()。
雅尔塔体系、两极格局、“冷战”三者的区别与联系是什么?
试编写一个非递归算法,实现求以二叉链表存储的二叉树中q结点的祖先。
在一个HDLC帧的数据中,如果出现了000111111011这样的流,请问发送到信道上它将会变成()。
随机试题
医生让病人抬左手,病人却抬右手,这一症状最可能是()
其治法是其治疗方药是
下列有关民事诉讼中实行公开审判的表述不正确的是()
()是正当竞争的基础。
某作家指控某杂志社侵犯其著作权,法院裁定作家胜诉,该作家取得杂志社的经济赔偿款30000元,该赔偿收入应缴纳个人所得税额()元。
被尊称“乐圣”的是()。
(1)在名称为Form1的窗体上添加一个名称为L1,标题为“业余爱好”的标签,再添加一个名称为Ch1的复选框数组,含3个复选框,它们的Index属性分别为0、1、2,标题依次为“体育”、“音乐”、“美术”,请设置复选框的属性,使其初始状态如下表所示。
下列叙述中错误的是
Itisanunfortunatefactoftoday’slifethatmostpeoplearegrowingupunabletoseethestars.Theprimenightskyexistson
MEMOTo:FactorystaffFrom:FactoryManagerDate:19November2008Subject:QualitycontrolThenewsystemstartsMondayweek.
最新回复
(
0
)