多数投票算法

✍ dations ◷ 2025-12-07 06:27:08 #算法

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

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

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

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

相关

  • 黑格尔格奥尔格·威廉·弗里德里希·黑格尔(德语:Georg Wilhelm Friedrich Hegel,常缩写为G. W. F. Hegel;1770年8月27日-1831年11月14日)是一名德国哲学家。其时代晚于康德,是德国19世纪
  • 慢性鼻窦炎鼻窦炎(Sinusitis)是描述发生于鼻窦的炎症。常见症状包含浓厚鼻涕、鼻塞,以及脸部疼痛。其他症状包含发烧、头痛、嗅觉减退、喉咙痛,以及咳嗽。咳嗽会于夜间加剧。严重副作用较
  • dCTP去氧胞苷三磷酸(Deoxycytidine triphosphate,dCTP)是核苷三磷酸的一种,也是可用来合成DNA的原料之一。含有五碳糖、磷酸根,以及胞嘧啶。
  • 辅酶Ⅱ烟.mw-parser-output ruby>rt,.mw-parser-output ruby>rtc{font-feature-settings:"ruby"1}.mw-parser-output ruby.large{font-size:250%}.mw-parser-output ruby.larger{f
  • 宁波话宁波话属于吴语太湖片甬江小片,通行于宁波大部分地区以及舟山群岛全境。其分布的主要地域为唐朝至民国时期的宁波府域,包括现宁波市所属海曙区、江北区、镇海区、北仑区、鄞州
  • 附益法附益法是汉武帝为解决西汉诸侯国问题而推行的法律,在淮南王刘安与衡山王刘赐谋反之后推行,主要为禁止朝廷大臣与诸侯勾结,也禁止官吏为诸侯聚敛财物,最高可处死刑。此法是,用以孤
  • 新报新报可以指:
  • 圣雷米 (罗讷河口省)1法国统计部门在计算土地面积时,不计算面积大于1平方公里的湖泊、池塘、冰川和河口。普罗旺斯地区圣雷米(法语:Saint-Rémy-de-Provence),通称圣雷米,是法国罗讷河口省的一个市镇,
  • 樱井宽樱井宽(1954年-),日本摄影记者,日本写真家协会、日本旅行作家协会会员。同时也是日本著名的铁道旅行者。樱井宽生于长野县小诸市。因为曾经立志进入日本国有铁道而进入昭和铁道高
  • 格连·雷亚格连·雷亚(Glen Rea,出生于1994年9月3日)是爱尔兰的职业足球运动员,司职中后卫,现效力于英格兰足球冠军联赛白礼顿。