主元素(Version3.0, 算法执行效率较Version2.0提升)

已知一个整数序列A=(a0​,a1​,…,an−1​),其中0≤ai​≤n,0≤i<n)。若某元素在数据序列中重复出现的次数为m,且m≥n/2,则称x为A的主元素。

如A=(0,5,5,3,5,7,5,5),则5为主元素;又如A=(0,5,5,3,5,1,5,7),则A中没有主元素。

假设顺序表A中有n个元素,请设计算法,找出A的主元素,若存在主元素,则输出主元素;否则输出A中没有主元素的信息。

输入

每组数据有两行,第一行为一个整数n,代表数组中有n个元素。第二行为数组中的n个元素(元素之间用空格分隔)。

输出

每组数据输出一行,若数组中存在主元素,输出主元素的值,若数组中不存在主元素,则输出A中没有主元素。

输入示例1

5  
1 2 3 4 5  

输出示例1

There is no main element.

输入示例2

7  
4 5 5 5 1 5 7

输出示例2

The main element of A is 5.

 [程序代码]

#include<stdio.h>
void InitArray(short *, short);
short MainElement(short *, short);
int main()
{
    /* 数据集合中元素的个数 */
    short N;
    while(scanf("%hd", &N) !&
上一篇:常量优化以及方法的学习


下一篇:长短期记忆网络 Long Short-Term Memory