多数投票算法

✍ dations ◷ 2025-12-03 13:11:33 #算法

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

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

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

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

相关

  • 百比停百比停是一种抗震颤麻痹的,现在仍然存在最初制造的品牌是巴斯夫/Knoll Pharma,商品名叫安易能锭(Akineton)。其非专利药在世界各地使用。口服的生物利用度因为首过效应只有33 +/
  • IUCN 3.1国际自然保护联盟濒危物种红色名录(或称IUCN红色名录,简称红皮书)于1963年开始编制,是全球动植物物种保护现状最全面的名录。此名录由国际自然保护联盟编制及维护。IUCN红色名录
  • 羟醛缩和反应羟醛反应(英语:aldol reaction)是有机化学及生物化学中构建碳-碳键最重要的反应手段之一。该反应由查尔斯·阿道夫·武兹和亚历山大·波菲里耶维奇·鲍罗丁于1872年分别独立发现
  • 武术家武术家,又叫武者,泛指锻炼武术,且在武术上具有成就的人士。练武的人遍布世界各地,也出现一些知名的流派,如中国功夫、拳击、柔道、剑道、空手道、跆拳道、合气道、泰拳、桑搏、日
  • 裂化反应在石油化学、石油地质学及有机化学中,裂解是将复杂的干酪根及长链重质烃的碳-碳键分裂成更单纯的分子,裂解反应速率及最终产品与温度及催化剂的有无有极大的相关。裂解是一种
  • 艾伦·麦克德尔米德艾伦·格雷厄姆·麦克德尔米德,ONZ(英语:Alan Graham MacDiarmid,1927年4月14日-2007年2月7日),或译“艾伦·麦克迪尔米德”,化学家,具有美国和新西兰双重国籍。由于在导电聚合物领域
  • 闽南语维基百科闽南语维基百科(闽南语:.mw-parser-output .sans-serif{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Lato,"Helvetica Neue",Helvetica,Arial,sans-seri
  • 澳洲囊口七鳃鳗澳洲囊口七鳃鳗(学名:),是囊口七鳃鳗科中的唯一物种。分布于南半球。幼年时期在淡水中度过,成年后迁移到海洋中,然后回到淡水中产卵并死亡。
  • 泰隆·鲍华泰隆·埃德蒙·鲍华(英语:Tyrone Edmund Power,1914年5月5日-1958年11月15日),出生于美国辛辛那提,曾出演过《碧血黄沙》、《控方证人》等电影。他的父亲以及祖父都是舞台剧演员,他
  • 复合弓 (传统弓)复合弓(英语:composite bow)是使用复合材料制造的弓,由木、角及腱三部分组成。未上弦线的复合弓向外弯曲,弓背(面向目标的一面)为木制。弓背亦包括三部分:一对弓臂及一个弓弝。木制