首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
输入一个按升序排序过的整数数组{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
60
问题
输入一个按升序排序过的整数数组{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://kaotiyun.com/show/2VRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
十六国时期的历史,可以划分为前后两个时期,其分界线是()。
毛泽东认为,社会主义这个阶段可分为两个阶段,包括()。
在巴黎和会上获利最大的两个国家是()。
第二次工业革命引起的生产关系方面最突出的变化是()。
解放军渡江战役中横渡长江的东西两个攻击点是()。
解放军渡江战役中横渡长江的东西两个攻击点是()。
北约和华约两个组织对峙近半个世纪,这()。
在请求分页存储管理中,若采用FIFO的页面淘汰算法,当分配的页面数增加时,缺页中断的次数()。
下图所示为双总线结构机器的数据通路,IR为指令寄存器,PC为程序计数器(具有自增功能),M为主存(受R/W信号控制),AR为地址寄存器,DR为数据缓冲寄存器,ALU由加、减控制信号决定完成何种操作,控制信号G控制的是一个门电路。另外,线上标注有小圈表示有控
随机试题
换证复核以()为主。
A.眼睑溃疡B.眶内包块C.巩膜炎D.上睑下垂E.丝状角膜炎类风湿关节炎可有
关于急性肾衰竭患者最常见的离子紊乱,以下正确的是
估价对象房地产2006年的纯收益为500万元,预计2007年到2011年各年纯收益分别为510万元、550万元、580万元、600万元、650万元,该房地产剩余经济寿命45年,土地使用权于2042年到期,该类房地产的报酬率为8%,则用未来数据资本化法计算的
控制项目目标的主要措施包括组织措施、管理措施、经济措施和技术措施,其中( )措施是最重要的措施。
文明礼貌的具体要求是()。
下列是关于我国历史上几个王朝盛世的表述,其中属于唐代的是()。
教育观察记录方法的分类中,主要用于对儿童成长和发展做传记式记录的方法是()。
有一首诗这样写道:“汉武雄图载史篇,长城万里遍烽烟。何如一曲琵琶好,鸣镝无声五十年。”诗中后两句反映的是________的史实。
下列关于直接选举与间接选举的错误论述为()
最新回复
(
0
)