首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
已知一个整数序列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
37
问题
已知一个整数序列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
学硕统考专业
相关试题推荐
1938年,英、法、德、意在德国召开会议讨论对捷克斯洛伐克的苏台德地区的问题,这次会议被称为(),它把英法的绥靖政策推到了顶峰,加速了二战的爆发。
下面条约没有涉及德国的赔款问题的是()。
反映查理大帝进攻阿拉伯人控制的西班牙的文学作品是()。
下列关于明朝设立内阁的相关表述不正确的是()。
蒙古军第一次大规模进攻南宋是在()时期
文艺复兴运动兴起的时间是()。
如何全面分析十月革命的历史条件及特点?
下列选择中,()不是操作系统关心的主要问题。
设计一个算法,求无向图G(采用邻接表存储)的连通分量个数。
随机试题
Thewaypeopleholdtothebeliefthatafun-filled,pain-freelifeequalshappinessactuallyreducestheirchancesofever
治疗成人原发性血小板减少性紫癜有效的3种疗法是()
患者,男,45岁。以突起头痛、头晕、呕吐半小时急诊入院。查体:浅昏迷,呼吸有大蒜味,皮肤湿冷,双侧瞳孔缩小,双肺可闻及散在湿啰音,有肌颤。抢救该患者时,应该禁用治疗方法是
张三和李四是邻居。2002年5月张三到法院起诉,要求李四还其借款6000元。法院受理后,适用简易程序由审判员王二审理。在审理过程中,王二发现案情复杂,不是简单的借款纠纷,而是因合伙购买机器引发的纠纷,需要进一步调查取证并进行书证笔迹鉴定。在此种情况下,案件
集散系统的硬件设备之间连接采用()。
在没有优先股的条件下,普通股票每股账面价值是以公司()除以发行在外的普通股票的股数求得的。
设A与B是任意两个事件,则A—B=()。
《物权法》第39条规定:所有权人对自己的不动产或者动产,依法享有占有、使用、收益和处分的权利。这一规则是()。
下列向子中,划线成语使用最恰当的—句是()。
【南社】陕西师范大学2014年中国史真题
最新回复
(
0
)