首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
输入一个按升序排序过的整数数组{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
34
问题
输入一个按升序排序过的整数数组{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
学硕统考专业
相关试题推荐
水门事件
在下列我国建国之后的外交活动中,能够体现“和而不同”思想的有()①亚非会议主张“求同存异”②提出“和平共处五项原则”③中日关系实现正常化④同第三世界国家建立友谊
康有为在他的《孔子改制考》中将孔子奉为主张变革的先驱,下列描述正确的是()
毛泽东认为,社会主义这个阶段可分为两个阶段,包括()。
唐朝对外关系呈现出前所未有的盛况,其原因不包括()
解放军渡江战役中横渡长江的东西两个攻击点是()。
解放军渡江战役中横渡长江的东西两个攻击点是()。
解放军渡江战役中横渡长江的东西两个攻击点是()。
试分析淝水之战前后南北政局的特点及其变化。
随机试题
具有通经下乳功效的药物是
下列哪项不是八正散主治证的症状
混凝土养护的正确措施包括()。
()不需要设置为数量金额式。
金属压力加工设备可分为两大类,即()。
根据合伙企业法律制度的规定,下列关于特殊的普通合伙企业中的某个合伙人在执行活动中因故意造成合伙企业债务时,合伙人承担责任的表述中错误的有()。
企业在薪酬调查时,需要调查的薪酬政策包括()。
《葛蓓莉娅》是一部浪漫主义的________作品。
电话拨号连接是计算机个人用户常用的接入因特网的方式。称为非对称数字用户线的接入技术的英文缩写是
(1)Sometimes,medicalsciencemakesbreakthroughsthatalmostno-oneseescoming.Othertimes,itjustseemstocatchupwithwh
最新回复
(
0
)