多数投票算法

✍ dations ◷ 2025-12-04 23:45:04 #算法

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

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

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

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

相关

  • 西墙西墙,又名哭墙(希伯来语:הַכֹּתֶל הַמַּעֲרָבִי‎,HaKotel HaMa'aravi),阿拉伯人称之为布拉克墙(阿拉伯语:حائط البراق‎,Ḥā'iṭ Al-Burāq)位于耶路
  • 理论计算机科学理论计算机科学(英语:theoretical computer science,缩写为TCS)是计算机科学的一个分支,它主要研究有关计算的相对更抽象化,逻辑化和数学化的问题,例如计算理论,算法分析,以及程序设
  • 弗拉基米尔·伊万诺维奇·维尔纳茨基弗拉基米尔·伊万诺维奇·维尔纳茨基 (乌克兰语:Володимир Іванович Вернадський、俄语:Влади́мир Ива́нович Верна́д
  • 高草酸血症草酸盐是草酸形成的盐类,含有草酸根离子(C2O42−或(COO)22−)。由于草酸是二元酸,因此草酸盐分为正盐草酸盐与酸式盐草酸氢盐两类,后者含有HC2O4−。草酸根离子(见右图)可作配体,与
  • 心皮雌蕊群,或雌花器(英语:Gynoecium),为被子植物花中的心皮的总称。传统上把较典型形态的花的花部中,由子房、花柱、柱头等部位构成者称为雌蕊(pistil),但在一朵花为多心皮、离生的状态
  • 闵安琪闵安琪(1957年1月14日-),华裔女作家,在二十七岁来到美国的时候,基本上不会说英语。而现在她已经成为一名成功的英语畅销书作家。她的作品中有很多经历奇特、性格鲜明的女性形象,比
  • 岩渕丽乐岩渕丽乐(日语:岩渕 麗楽/いわぶち れいら ,2001年12月14日-)生于岩手县东磐井郡东山町(现一关市),是一名日本女子单板滑雪运动员,主攻障碍技巧和大跳台。岩渕四岁时受父母影响开始练
  • 法图拉派恐怖组织法图拉派恐怖组织/平行政府结构(土耳其语:Fethullahçı Terör Örgütü/Paralel Devlet Yapılanması,缩写作FETÖ/PDY),是土耳其政府假想的一个恐怖组织。在安卡拉安全理事
  • 帚石楠帚石楠(学名:)是指杜鹃花科帚石楠属的植物,别名“苏格兰石楠”。在欧洲,帚石楠属与其同科近类欧石楠属经常遭到混淆,被互作训解的称号亦有不少(这种情况在汉语领域中更为明显)。虽然
  • 贝伦湖坐标:47°51′40″N 10°38′39″E / 47.86111°N 10.64417°E / 47.86111; 10.64417贝伦湖(德语:Bärensee),是德国的水库,位于该国东南部,由巴伐利亚州负责管辖,处于考夫博伊伦以