多数投票算法

✍ dations ◷ 2025-10-22 04:15:15 #算法

博耶-摩尔多数投票算法(英语:Boyer–Moore majority vote algorithm),中文常作多数投票算法、摩尔投票算法等,是一种用来寻找一组元素中占多数元素的常数空间级时间复杂度算法。这一算法由罗伯特·S·博耶(英语:Robert S. Boyer)和J·斯特罗瑟·摩尔(英语:J Strother Moore)在1981年发表,也是处理数据流(英语:streaming algorithm)的一种典型算法。

这一算法应用的问题原型是在集合中寻找可能存在的多数元素,这一元素在输入的序列重复出现并占到了序列元素的一半以上;在第一遍遍历之后应该再进行一个遍历以统计第一次算法遍历的结果出现次数,确定其是否为众数;如果一个序列中没有占到多数的元素,那么第一次的结果就可能是无效的随机元素。对于数据流而言,则不太可能在亚线性空间复杂度的情况下中就寻找到出现频率最高的元素;而对于序列,其元素的重复次数也有可能很低。

算法可以用伪代码如下表示:

即便输入序列没有多数元素,这一算法也会返回一个序列元素。然而如果能够进行第二轮遍历,检验返回元素的出现次数,就能判断返回元素是否为多数元素。因此算法需要两次遍历,亚线性空间算法无法通过一次遍历就得出输入中是否存在多数元素。

相关

  • 遗传漂变遗传漂变,或基因漂变(genetic drift),是指种群中基因库在代际发生随机改变的一种现象。由于任何一个个体的生存与繁殖都受到随机因素影响,繁殖过程可看做一种抽样,子代携带的等位
  • 波兰兹罗提波兰兹罗提(波兰语:Polski Złoty)为波兰的官方货币,在波兰语中为“黄金”之意,复数称“złote”或“złotych”。波兰在1990年代初经历了恶性通货膨胀后,旧有的兹罗提贬值一万倍;
  • 吉森尤斯图斯-李比希大学吉森大学,全称吉森尤斯图斯-李比希大学(德语:Justus-Liebig-Universität Gießen,缩写为JLU),是一所位于德国黑森州吉森的公立大学,1607年由黑森-达姆施塔特伯爵路德维希五世(德语:L
  • 让-雅克·阿诺让-雅克·阿诺(法语:Jean-Jacques Annaud,1943年10月1日-),法国电影导演、电影制作人和编剧。澳门科技大学电影学院名誉院长。1943年,阿诺出生在法国法兰西岛大区埃松省奥尔日河畔
  • 达哈努बाप तहसील घंटियाली 城镇达哈努(Dahanu),是印度马哈拉施特拉邦帕尔加尔县的一个城镇。总人口44393(2001年)。该地2001年总人口44393人,其中男性22926人,女性21467
  • 圣巴巴拉地区圣巴巴拉(Santa Barbara,又译为圣芭芭拉、圣塔芭芭拉)是美国加利福尼亚州圣巴巴拉县太平洋沿岸的一座城市,也是圣巴巴拉县的县治所在。根据美国人口调查局2010年统计,人口有8万84
  • 细分 (图论)在图论中,细分(subdivision)或分割是指在一个图的其中一条边加入新的顶点,使这条边转变成由多个顶点构成之路径的变换,又称为扩展(expansion),为图子式理论中的基本算子之一,而变换完
  • 拉巴·萨阿丹拉巴·萨阿丹(阿拉伯语:رابح سعدان‎,法语:Rabah Saâdane,1946年5月3日-)是一名前阿尔及利亚足球运动员,司职后卫,退役后担任教练,目前是阿尔及利亚国家足球队的主教练。萨
  • 乐德镇乐德镇是四川省荣县城西部的一个镇,距县城23公里,邻接东佳镇,南与留佳镇相望,西与望佳镇毗邻,北靠双古镇。2004年9月,合并后的乐德镇面积26.46平方公里,总人口为23038人,下辖8个行政
  • 弗朗索瓦丝·玛丽·德·波旁弗朗索瓦丝·玛丽·德·波旁(法语:Françoise Marie de Bourbon,1677年5月4日-1749年2月1日),是法兰西国王路易十四和情妇蒙特斯潘侯爵夫人的幼女。婚前,她在宫中被称为布莱伊斯女