多数投票算法

✍ dations ◷ 2025-12-09 15:37:32 #算法

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

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

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

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

相关

  • AAT艺术与建筑索引典(英语:Art & Architecture Thesaurus,AAT)是一个用来描述关于艺术、建筑和物质文化项目的受控词表。AAT收录各种通用术语,如“大教堂”,但不收录专有名词,如“圣母
  • 职业过劳根据世界卫生组织,职业过劳(英语:Burnout)是一种由慢性工作压力导致的症候群,症状包含“精神耗尽、对工作的心里距离增加、对工作的负面感觉、以及工作效率的减少”。职业过劳不
  • 钻石尘钻石尘(英语:Diamond dust)是一种能在地面附近观测到的微小冰块。亦作“钻石粉尘”或“钻石星尘”,有的称作“冰晶”。这些小冰块经常出现在逆温时期,热空气与冷空气混合的时候。
  • UpToDateUpToDate, Inc.(bip)是威科集团的 Wolters Kluwer Health部门下的公司,其主要产品是UpToDate,是可以提供照护点(英语:point-of-care)医疗资讯的软件系统。也在中国大陆推出了UpToDa
  • 弗留利-威尼斯朱利亚弗留利-威尼斯朱利亚(意大利语:Friuli-Venezia Giulia,弗留利语:Friûl Vignesie Julie,斯洛文尼亚语:Furlanija-Julijska krajina,德语:Friaul-Julisch Venetien),面积7856km²,人口11
  • 乌克兰语乌克兰语(Українська мова),中文也称乌克兰文,是斯拉夫语族东斯拉夫语支的一种语言。它是乌克兰的官方语言,同时也是乌克兰两种主要通用语言之一。乌克兰文采用西
  • 外阿彭策尔州外阿彭策尔州 (德语:Appenzell Ausserrhoden)是瑞士的一个州。该州的州政府及州议会设在黑里绍。司法部门设在特罗根。位于瑞士的东北部。与圣加仑州和内阿彭策尔州两州接壤。
  • 菲比·艾芙隆菲比·艾芙隆(英语:Phoebe Ephron,1914年1月26日-1971年10月13日)是一个美国剧作家和编剧,她是丈夫亨利·艾芙隆的搭档,两人经常一同工作。1914年,艾芙隆出生在美国纽约州纽约市,父母
  • 国家音乐厅 (爱尔兰)国家音乐厅(英语:National Concert Hall,NCH,爱尔兰语:An Ceoláras Náisiúnta)是位于爱尔兰共和国首都都柏林的一个音乐厅,靠近圣史蒂芬绿地,是爱尔兰最重要的古典音乐演出场地。
  • 丽贝卡·沃德丽贝卡·沃德(英语:Rebecca Ward,1990年2月7日-),美国女子击剑运动员。在2008年北京奥运中,获得个人佩剑铜牌,以及团体佩剑铜牌。另外,她曾在2006年世界击剑锦标赛中,获得佩剑个人金牌