多数投票算法

✍ dations ◷ 2025-10-22 17:52:09 #算法

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

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

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

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

相关

  • 腺苷脱氨酶缺乏症腺苷脱氨酶缺乏症(英语:Adenosine deaminase deficiency)缺乏症是一种体染色体隐性遗传疾病 ,会破坏免疫系统并导致严重复合型免疫缺乏症(SCID)。此病的病因是腺苷脱氨酶(ADA)缺乏导
  • 椎间盘突出椎间盘脱出症(Spinal disc herniation,或Intervertebral disc herniation),又叫椎间盘突出症,是一种医学上用来描述脊髓上的椎间盘纤维环变性破裂,从而导致髓核移位且超出范围损害
  • 布鲁克纳安东·布鲁克纳(德语:Anton Bruckner 德语:.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lucida Sans Unicode","Code2000",
  • 立方皆米体积(英语:Volume)是物件占有多少空间的量。体积的国际单位制是立方米。一件固体物件的体积是一个数值用以形容该物件在空间所占有的空间。一维空间物件(如线)及二维空间物件(如正
  • 施瓦岑贝格亲王卡尔·菲利普,施瓦岑贝格亲王(Karl Philipp Fürst zu Schwarzenberg (或Prince Charles Philip of Schwarzenberg) (1771年4月18日 – 1820年10月15日) 奥地利陆军元帅和外
  • 乌克兰维尔纳茨基国家图书馆乌克兰维尔纳茨基国家图书馆(乌克兰语:Національна бібліотека України імені В. І. Вернадського)是乌克兰规模最大的图书馆
  • 推官推官,唐代设置,最早是节度使、观察使等官的属官,多掌理司法,不系京职,后期成为对法官的雅称。清末,改称推官为推事,民国初年仍称法官为推事。唐朝节度使、观察使、团练使、防御使等
  • 曼城2014年至2015年赛季2014年至2015年赛季是曼城的第113个赛季,也是在英格兰顶级联赛的第86个赛季,以及在英超的第18个赛季。供应商: 耐克 / 赞助商: 阿提哈德航空 耐克为第二年提供曼城球
  • 篮球冠军联赛篮球冠军联赛(BCL)是一年一度属于职业篮球俱乐部的欧洲比赛,由FIBA举办。俱乐部根据其在国家联赛和杯赛中的表现获得比赛资格,但有些球队可以透过外卡获得资格。2001年,国际篮联
  • 鲍墟镇鲍墟镇,是中华人民共和国河北省保定市蠡县下辖的一个乡镇级行政单位。原鲍墟乡于2017年初撤乡设镇。鲍墟镇下辖以下地区:北鲍墟村、南鲍墟村、西鲍墟村、东鲍墟村、西孟尝村、