返回主页
学习人数: 547
stroke-dashoffset="*2.6389" stroke-linecap="round" transform="rotate(-90 50 50)"/>
正确率: 100%
未通过

(13分)已知一个整数序列\(A = (a_0, a_1, \cdots, a_{n - 1})\),其中\(0\leq a_i < n(0\leq i < n)\)。若存在\(a_{p1}=a_{p2}=\cdots = a_{pm}=x\)且\(m > n/2(0\leq p_k < n, 1\leq k\leq 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\)个元素保存在一个一维数组中,请设计一个尽可能高效的算法,找出\(A\)的主元素。若存在主元素,则输出该元素;否则输出 - 1。要求:
(1)给出算法的基本设计思想。(4分)
(2)根据设计思想,采用 C 或 C++或 Java 语言描述算法,关键之处给出注释。 (7分)
(3)说明你所设计算法的时间复杂度和空间复杂度。 (2分)

回答区域
提示
提示内容

登录后提交答案


暂无评论,来抢沙发