多数投票算法

✍ dations ◷ 2025-12-02 10:56:40 #算法

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

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

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

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

相关

  • 乏力虚弱、无力、乏力(英语:weakness或asthenia)是一种症状的统称,有着多种不同的用法。该症状的成因多种多样,可细分为真性肌无力(true muscle weakness),或者体感肌无力。真性肌无力是
  • 漠北漠北可以指:
  • 莫罗尼莫罗尼(法语:Moroni,阿拉伯语:موروني‎),科摩罗最大城市,自1962年起成为科摩罗首都,该城位于大科摩罗岛西岸。地理位置为南纬11°42'13",东经43°15'13"。截止2003年,该城市约有
  • 2019冠状病毒病巴基斯坦疫情2019冠状病毒病巴基斯坦疫情,介绍在2019新型冠状病毒疫情中,在巴基斯坦发生的情况。2020年2月26日,2019冠状病毒病疫情扩散至巴基斯坦。
  • 本因坊秀荣本因坊秀榮(1852年11月1日-1907年2月10日),日本围棋棋手、第十三世林家家督、第十七世及十九世本因坊、第九位名人。 为本因坊秀和的次子,本名土屋平次郎,法名日达。 因为林柏荣门
  • 流沙流沙是指饱水的疏松砂性土,特别是粉砂和细砂土,在震动力或水动力作用下发生液化、流动的现象。成因是充满水分的松软泥沙,并受到外力的刺激。当水分被沙堆包围不能泄去时,水和沙
  • 上杉鹰山上杉鹰山(1751年9月9日-1822年4月22日、宝历元年7月20日 - 文政5年3月11日)讳治宪,日本江户时代人物,第九代米泽藩藩主。最广为人知的事情是成功改革米泽藩。宽延4年7月20日(1751
  • 凯赫特纳乡坐标:58°55′49″N 24°52′41″E / 58.93028°N 24.87806°E / 58.93028; 24.87806凯赫特纳乡(爱沙尼亚语:Kehtna vald),是爱沙尼亚的一个乡,位于该国西部,由拉普拉县负责管辖,首
  • 陈钺 (天顺进士)陈钺(1429年-1488年),字廷威,直隶省河间府献县人,治《书经》,年二十九岁中式天顺元年丁丑科第三甲第一百一十名进士。十一月十四日生,行一。由国子生中式顺天府乡试第二百二十五名举
  • 江苏省丹阳高级中学江苏省丹阳高级中学,1941年创办于四川青木关(今重庆市青木关镇),前身为“国立社会教育学院附属中学”,1946年迁至丹阳夫子庙。后几度易名,于1996年更名为江苏省丹阳高级中学。现占