首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
已知一个整数序列A=(a0,a1,…,an+1),其中0≤ai<n(0≤i<n)。若存在ap1=ap2=…=apm=x且m>n/2(0≤pk<n,1≤k≤m),则称x为A的主元素。例如A=(0,5,5,3,5,7,5,5),则5为主元素;又如A=(0,5,
已知一个整数序列A=(a0,a1,…,an+1),其中0≤ai<n(0≤i<n)。若存在ap1=ap2=…=apm=x且m>n/2(0≤pk<n,1≤k≤m),则称x为A的主元素。例如A=(0,5,5,3,5,7,5,5),则5为主元素;又如A=(0,5,
admin
2015-12-30
25
问题
已知一个整数序列A=(a
0
,a
1
,…,a
n+1
),其中0≤a
i
<n(0≤i<n)。若存在a
p1
=a
p2
=…=a
pm
=x且m>n/2(0≤p
k
<n,1≤k≤m),则称x为A的主元素。例如A=(0,5,5,3,5,7,5,5),则5为主元素;又如A=(0,5,5,3,5,1,5,7),则A中没有主元素。假设A中的n个元素保存在一个一维数组中,请设计一个尽可能高效的算法j找出A的主元素。若存在主元素,则输出该元素;否则输出-1。
要求:
根据设计思想,采用C或C++或Java语言描述算法,关键之处给出注释。
选项
答案
算法实现: int Majority(int A[],int n){ int i,c,count=1;//c用来保存候选主元素,count用来计数 c=A[0];//设置A[0]为候选主元素 for(i=1;i<n;i++)//查找候选主元素 if(A[i]==c) count++;//对A中的候选主元素计数 else if(count>0)//处理不是候选主元素的情况 count--; else{//更换候选主元素,重新计数 C=A[i]; count=1; } if(count>0) for(i=count=0;i<n;i++)//统计候选主元素的实际出现次数 if(A[i]==c) count++; if(count>n/2)return c;//确认候选主元素 else return -1;//不存在主元素 }
解析
转载请注明原文地址:https://kaotiyun.com/show/KKxi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
蒙古军西征之后,罗斯处于()的控制之下。
苏联在哪次会议上通过了社会主义工业化方针,并在此之后开始了大规模的工业化建设?()。
中国历史上第一部资产阶级革命法典《临时约法》公布的时间是()。
下列城市:①南京②厦门③天津④杭州,按其在近代历史上开放为商埠的时间先后顺序排列应该是()
阅读下列材料,回答问题:材料一:我们与希特勒或他们的匪帮永不会谈,永不斡旋,我们将在陆地上、海洋上、天空中与他们作战。直到把笼罩阴云于大地的一切敌人消灭为止……任何为反对纳粹主义而战斗的国家或人民,我们都支援。任何与希特勒为伍的人或国家都是我们的敌人。我
阅读下列材料,并结合所学知识回答问题:材料一重申粮食垄断和价格都是不可更改的,重申必须同粮食投机商进行无情斗争,同时责成每一者,必须在本法令公布后一周内,把超过播种田地和自己到下次收获前的定额消费量的全部余粮呈报交售,呈报的办法由粮
下图是某模型机CPU的组成框图。设该CPU采用同步控制逻辑,分取指周期、取第一操作数周期,取第二操作数周期、执行周期四个机器周期,每个机器周期有T0、T1、T2三个节拍。试写出如下双操作数运算指令的微操作命令及节拍安排。ADDR0,(R1)完成功
某系统中n个相互独立的生产者进程为一个消费者进程提供数据,假设每个生产者提供的数据写入各不相同的缓冲区,且生产者写缓冲区的速度比消费者读缓冲区的速度快,则缓冲区个数的最优值应为()。
给定页面请求序列RS=cadbebabcd,页框为4,起始为空,写出LRU页面置换过程。
随机试题
属于医疗器械严重伤害的有
不知道客户购房意愿和购买预算时,房地产经纪人推荐房屋应从()。
某业主投资一建设工程项目,通过招标选择了一家施工单位,并与之签订了合同。合同约定,在施工过程中,若由于业主原因造成窝工,则机械的停工费用和人工窝工费按台班费和工日费的40%结算支付。该工程按如下计划进行:在计划执行过程中,出现了如下事件:事件一:因业
下列有关无形资产的说法中,符合企业会计准则规定的有( )。
BOT投资方式的最大特点是()。
社会主义职业道德建设要()
农产品市场营销的根本任务是解决()的种种矛盾。
(Ⅰ)证明:利用变换可将方程.(Ⅱ)求方程的通解.
在考生文件夹下有工程文件sj5.vbp及窗体文件sj5.frm,该程序是不完整的。在名称为Forml的窗体上有3个Label控件和2个命令按钮,命令按钮的名称为Commandl与Command2,标题为“读取”与“保存并退出”。考生文件夹下的数据文件in5
Whatdoesthemanintendtodo?
最新回复
(
0
)