首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
已知一个整数序列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
24
问题
已知一个整数序列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://jikaoti.com/ti/MMajFFFM
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
反映查理大帝进攻阿拉伯人控制的西班牙的文学作品是()。
宗法制是西周又一项重要的政治制度,与分封制密切相关,宗法制的核心内容是()
20世纪初出现的法西斯主义实质上也是一种恐怖主义。它与传统的资本主义政治制度的不同主要体现在()。①实行一党专政②抛弃了议会民主制③对外争夺殖民地④强化思想文化的控制
我国第一部系统的史学理论著作是()。
中古时代实行索贡巡行赋税征收方式的国家是()。
西巴比伦王国存在的时间很短,不足90年,其中哪位国王在位的40年是该国最强盛的时期。()
试述中国共产党诞生的历史条件和意义。
下列城市:①南京②厦门③天津④杭州,按其在近代历史上开放为商埠的时间先后顺序排列应该是()
一棵:BS’r树共7个结点,值分别为1、2、3、4、5、6、7,形态为满二叉树,()不是插入序列。
已知散列函数为H(key)=key%11,处理冲突的方法为二次探测法,探测的序列为:1,-1,4,-4,…,j2,-j2(j<=m/2)。当di>0时,Hi=(H(key)+di)%m当di<0时,Hi=(H(key)+di+m)%m散列
随机试题
设一组初始记录关键字序列为(25,50,15,35,80,85,20,40,36,70),其中含有5个长度为2的有序子表,则用归并排序的方法对该记录关键字序列进行一趟归并后的结果为()。
关于胆石症的叙述,不正确的是
一项临床科研设计的三个组成部分是
煮炉的目的是()。
在水生生物洄游通道、通航或者竹木流放的河流上修建永久性拦河闸坝,建设单位应当同时修建(),或者经国务院授权的部门批准采取其他补救措施。
年度终了,各种账户在结转下年、建立新账后,一般都要把旧账送交主办会计集中统一管理。()
职工田某接受他人赠送房屋一套,该房屋原来建筑成本6万元,目前市场价26万元,契税税率为5%,则田某应缴契税()万元。
学习效果和学习动机之间存在()。
构造方法何时被调用?()
A、Heisunabletotalk.B、Hedoesn’tlikehisclassroom.C、Hecan’tfindhisofficekey.D、Hehasmisplacedsomeexams.AWhatis
最新回复
(
0
)