首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
输入一个按升序排序过的整数数组{1、2、4、7、11、15}以及一个整数数字15,我们可以从该数组中找到两个数字,即4和11,使得4+11=15。请实现一个时间上尽可能高效率的算法,当输入一个已经按升序排序过的整数数组和一个整数数字,在数组中查找两个数,使
输入一个按升序排序过的整数数组{1、2、4、7、11、15}以及一个整数数字15,我们可以从该数组中找到两个数字,即4和11,使得4+11=15。请实现一个时间上尽可能高效率的算法,当输入一个已经按升序排序过的整数数组和一个整数数字,在数组中查找两个数,使
admin
2017-11-20
61
问题
输入一个按升序排序过的整数数组{1、2、4、7、11、15}以及一个整数数字15,我们可以从该数组中找到两个数字,即4和11,使得4+11=15。请实现一个时间上尽可能高效率的算法,当输入一个已经按升序排序过的整数数组和一个整数数字,在数组中查找两个数,使得它们的和正好是输入的那个整数数字。如果有多对数字的和等于输入的整数数字,输出任意一对即可。要求:
根据设计思想,采用C或C++或Java语言描述算法,关键之处给出注释。
选项
答案
算法实现如下: boo1 indTwoNumbersWithSum { //以下都为FindTwoNumbersWithSum函数的参数 int data [], //己排序的数组 unsigned int length, //已排序数组的长度 int&num1, //第一个数字 int&num2, //第二个数字 int sum, //输入的整数数字 } { boo1 found=faise; //空数组将会出错 if(1ength<1) return found; int ahead=length-1; int behind=0; while(ahead>behind) { int curSum=data[ahead]+data[behind]; //如果两个数之和恰好等于输入的数字 i f(curSum==sum) { numl=data[behind]; num2=data[ahead]; found=true, break; } //如果两个数之和大于输入的数字,将大的数字减少 else if(curSum>sum) ahead--; //如果两个数之和小于输入的数字,将小的数字加大 else behind++; } return found; }
解析
转载请注明原文地址:https://www.kaotiyun.com/show/2VRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
水门事件
下列事件最能体现对苏联民主制造成重大破坏的是()。
解放军渡江战役中横渡长江的东西两个攻击点是()。
试分析淝水之战前后南北政局的特点及其变化。
晚清时期清帝年号的正确排序是
解放军渡江战役中横渡长江的东西两个攻击点是()。
北约和华约两个组织对峙近半个世纪,这()。
某机字长32位,采用定长操作码,单字长指令,共有机器指令100条,CPU内部有通用寄存器32个,可作变址寄存器用,存储器按字节编址,指令拟用直接寻址、间接寻址、变址寻址和相对寻址等4种寻址方式。(1)分别画出寻址方式由操作码指出和寻址方式由专用字
随机试题
A.吴鞠通B.王清任C.朱丹溪D.张景岳E.张仲景
男,65岁,颈部不适2年,伴四肢无力,行走不稳2年。经查体肌腱反射无亢进,双乳头以下感觉减退,Hoffmann征(+),颈椎加压试验(+),该患者最佳治疗措施是()
心室颤动患者的脉搏特征是
依据《生活垃圾填埋场污染控制标准》,生活垃圾填埋场场址的位置及与周围人群的距离(),并经地方环境保护行政主管部门批准。
《常用化学危险品贮存通则》(GB15603)规定,危险化学品露天堆放,应符合防火、防爆的安全要求;爆炸物品、一级易燃物品和()物品不得露天堆放。
NVOCChasnoregularscheduledservice.()
合伙人分别执行合伙事务的,执行事务的合伙人可以对其他合伙人执行的事务提出异议;但是异议不停止合伙事务的执行。()
关于实体现金流量的计算,下列式子不正确的是()。
习近平总书记在()3月指出:“绿水青山是金山银山,冰山雪地也是金山银山。”
指定在一个文本框中如何输入和显示数据的属性是()。
最新回复
(
0
)