多数投票算法

✍ dations ◷ 2025-12-08 22:12:38 #算法

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

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

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

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

相关

  • 吸入器吸入器或吸入剂(英语:inhaler)是一种医疗设备,可协助让药品通过肺部吸收入体内,主要用来治疗哮喘和慢性阻塞性肺病。比如,用于治疗流感的扎那米韦(英语:Zanamivir)就必须通过吸入器来
  • 苯甲酰氯苯甲酰氯(C6H5COCl),也称苯酰氯,为无色发烟液体,具有刺激性气味。在实验室中,可由在无水条件下蒸馏苯甲酸和五氯化磷得到。苯甲酰氯的大规模制备则可通过使用氯化亚砜氯化苯甲醛得
  • 马克·费尔德曼马克·费尔德曼(波兰语:Marc Feldmann,1944年12月2日-),出生于波兰,英国免疫学家,牛津大学教授。费尔德曼曾就读于墨尔本大学和沃尔特和伊丽莎·霍尔学院医学研究所。在20世纪70年代
  • 熊去氧胆酸熊去氧胆酸(英语:Ursodeoxycholic acid,也被称为3α,7β-二羟基-5β-胆烷-24-羧酸,3α,7β-dihydroxy-5β-cholan-24-oic acid,缩写 UDCA),是一种来自熊胆的胆汁酸,为次级胆汁酸,由初
  • 投资投资在财务(金融)及经济方面,各有不同的意义。财务投资是透过完善的分析,对于本金、收益可达一定程度的预估,将资金投入那些预期有所增长的标的上。而完全对立的作法,像未经分析、
  • 戴维·尼文大卫·尼文(James David Graham Niven ,1910年3月1日 - 1983年7月29日),英国演员与作家,曾获得奥斯卡最佳男主角奖。在第二次世界大战期间拍摄了两部电影,并在铜头蛇行动中执行了
  • 圭亚那总统圭亚那合作共和国总统为圭亚那政府的国家元首及三军统帅,由多数党领袖出任。当圭亚那在1970年宣布为主权共和国后,总理由圭亚那国民议会选举产生,任期五年,并拥有主要是礼仪性的
  • BitTorrent (软件)BitTorrent是由布莱姆·科亨与BitTorrent公司开发,是全球第一套基于BitTorrent协议的点对点文件上传/下载软件(也就是BitTorrent客户端),由于源自官方而被昵称为“主流”(Mainlin
  • 美国国家出柜日美国国家出柜日(英语:National Coming Out Day,NCOD),每年在10月11日举行,是增进大众对于LGBT的意识的节日。源自于1988年的美国,初始的概念来自于女性主义和同性恋解放运动中“个
  • 史蒂夫·巴特曼事件史蒂夫·巴特曼事件(英语:Steve Bartman incident)发生在2003年10月14日,那天是国家联盟冠军赛的第六战,芝加哥小熊在主场瑞格利球场(Wrigley Field)迎战佛罗里达马林鱼。当时小熊