多数投票算法

✍ dations ◷ 2025-12-06 02:37:38 #算法

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

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

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

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

相关

  • 粒细胞粒细胞是一类细胞质中包含颗粒体(英语:Granule_(cell biology))的白细胞,又因其细胞核形态多样而称多形核白细胞,(PMN或PML)。术语多形核白细胞通常特指最常见的中性粒细胞。粒细胞
  • 让·拉辛让·拉辛(法语:Jean Racine,1639年12月22日-1699年4月21日),法国剧作家,与高乃依和莫里哀合称十七世纪最伟大的三位法国剧作家。拉辛出身于一个小官员家庭,自幼父母双亡,被外祖母和舅
  • DRD26CM4181313489ENSG00000149295ENSMUSG00000032259P14416P61168NM_016574、NM_000795、XM_017017296NM_010077、XM_006509996NP_000786、NP_057658、XP_016872785NP_000786.1
  • 狄奥多西一世狄奥多西一世(Theodosius I,347年-395年1月17日)又译为狄奥西亚一世或杜多思一世,也被称作狄奥多西大帝,本名弗拉维乌斯·狄奥多西(Flavius Theodosius),是罗马帝国皇帝(379年-395年),392
  • 德宏州德宏傣族景颇族自治州(傣那语:ᥖᥬᥳᥑᥨᥒᥰ .mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lucida Sans Unicode","Code20
  • 自治市镇自治市镇(英语:Borough),或称自治城镇、自治市、自治镇,是英语圈国家常见行政区划,特别是英国以及北美洲两国。自治市镇(英语:Borough)在印欧语系(尤其使用拉丁字母的日耳曼语族、罗曼
  • 托马斯·安德森托马斯·安德森(英语:Thomas Anderson,1819年7月2日-1874年11月2日)是一名19世纪的苏格兰化学家。他出生在利斯,在1841年毕业于爱丁堡大学,并获得医学博士学位。在医学研究期间,托马
  • 卡尔·皮尔逊卡尔·皮尔逊(Karl Pearson,1857年3月27日-1936年4月27日),英国数学家和自由思想家。1857年出生于英国伦敦;1879年毕业于剑桥大学,获数学学士学位;后往德国海德堡大学进修德语及人文
  • 俄罗斯联邦功勋文化工作者俄罗斯联邦功勋文化工作者(俄语:Заслуженный работник культуры Российской Федерации),简称“俄罗斯功勋文化工作者”,是俄罗斯
  • 半藤一利半藤一利(1930年5月21日-)是一名知名的日本作家、散文家,专长为写作近现代特别是昭和时期的历史。祖先来自长冈藩,出生于东京都墨田区。毕业于东京大学文学部国文科,其后与田中健