多数投票算法

✍ dations ◷ 2025-12-11 12:28:06 #算法

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

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

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

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

相关

  • 蝶骨蝶骨(sphenoid bone)为构成颅骨的29块骨骼之一,共一块。当从前方观察时,其形状如同蝴蝶,所以得名。蝶骨分为体、小翼、大翼和翼突四个部分。蝶骨分为以下部分:两个蝶甲(英语:Sphe
  • Stephen Jay Gould史蒂芬·杰伊·古尔德(英语:Stephen Jay Gould,1941年9月10日-2002年5月20日)是一名美国古生物学家、演化生物学家,科学史学家与科普作家,职业生涯中大多在哈佛大学担任教职,并曾在
  • 蝙蝠冠状病毒RaTG13RaTG13病毒(BatCoV RaTG13)是乙型冠状病毒属一种感染蝙蝠的病毒,于2013年在中国云南的中菊头蝠体内被发现。此病毒为正链单股RNA病毒,具有外膜,其基因组长约29800nt,编码冠状病毒
  • 全国运动汽车竞赛协会全国运动汽车竞赛协会(National Association for Stock Car Auto Racing,缩写:NASCAR,中文名称为纳斯卡赛车)是在美国最大、最受认可的赛车竞速团体。由NASCAR认可三个最大的竞速
  • 拉鲁岛坐标:23°51′20″N 120°54′40″E / 23.85556°N 120.91111°E / 23.85556; 120.91111拉鲁岛(邵语:Lalu)是一座位于台湾南投县日月潭中央的小岛。清朝有珠屿、珠仔山、珠潭浮
  • 葛敦华葛敦华(1921年9月18日-2010年6月12日),中华民国海军中将,前中华民国国防部常务次长。中华民国总统府国策顾问。福建福州市人。
  • 东营港疏港高速公路东营港疏港高速公路,曾称东港高速公路,高速公路网编号为S7201,是山东省东营市境内河口区东营港通往利津县东北部的一条疏港高速公路。公路全长64.65km,全封闭,全立交,双向四车道,设
  • 多克隆位点多位点人工接头(英语:polylinker)为人工合成的一段DNA序列,其中含有多个限制内切酶识别位点,可插入质粒等载体序列上形成多克隆位点(英语:multiple cloning site、polycloning site
  • 华顶博信华顶博信(1905年5月22日-1970年10月23日),是伏见宫家的皇族,后臣籍降下为华族(侯爵),他也是海军军人和贵族院议员,阶位是海军大佐勲一等侯爵。皇族时称(伏见宫)博信王。博信王是1925年(
  • 修饰键修饰键(英语:modifier key)在计算机领域指电脑键盘上的一些用于组合按键的特殊按键。在修饰键被按压的同时按下另一个键会指向该键的非默认动作。只按下修饰键一般不执行任何动