多数投票算法

✍ dations ◷ 2025-11-16 06:22:27 #算法

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

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

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

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

相关

  • 二十国集团二十国集团(英语:Group of Twenty,缩写:G20)是一个国际经济合作论坛,于1999年12月16日在德国柏林成立,属于布雷顿森林体系框架内对话的一种机制,由七国集团(加拿大、美国、英国、法国
  • 琼·芳登琼·芳登(英语:Joan Fontaine,1917年10月22日-2013年12月15日),生于日本东京,是英国裔美国籍电影女演员,曾获奥斯卡最佳女主角奖。她是英国导演阿尔弗雷德·希区柯克的御用“希区柯
  • 长柔毛野豌豆长柔毛野豌豆(学名:Vicia villosa)是豆科野豌豆属的植物。分布在欧洲、伊朗、中亚以及中国大陆的广东、西北、华北、西南、江苏、东北、湖南、山东等地,生长于海拔900米至2,100
  • 赫特福德赫特福德郡(英语:Hertfordshire,简称:Herts),英国英格兰东部的郡。赫特福德是郡治。以人口计算,代科勒姆是第1大自治市镇(Borough),圣奥尔本斯市和区是第2大自治市镇,第1大(亦是唯一一个
  • 七鳃鳗科七鳃鳗科(学名:Petromyzontidae),又名八目鳗、七星子,是圆口纲七鳃鳗亚纲七鳃鳗目的一个科,其下生物是至今少数仅存的无颌类脊椎鱼形动物之一。最古老的七鳃鳗化石,有3.6亿年历史,在
  • 阿布·穆斯林阿布·穆斯林·呼罗珊尼(波斯语:ابو مسلم خراسانى‎,阿拉伯语:أبو مسلم عبد الرحمن بن مسلم الخراساني‎,约718年-755年),伊斯兰阿拔
  • 厚唇德州丽鱼厚唇德州丽鱼,为辐鳍鱼纲鲈形目隆头鱼亚目慈鲷科的其中一种,被IUCN列为濒危保育类动物,分布于中美洲墨西哥Panuco河流域,体长可达25公分,栖息在中底层水域,属杂食性,可作为观赏鱼。
  • 台风卡玫基 (2008年)台风卡玫基台风卡玫基(英语:Typhoon Kalmaegi,国际编号:0807,JTWC编号:08W,菲律宾大气地理天文部门名称:Helen)是2008年太平洋台风季的一个热带气旋。“海鸥”(갈매기)是北朝鲜提供的
  • 纳贾·希格尔纳贾·希格尔(Nadja Higl,塞尔维亚语:Нађа Хигл / Nađa Higl,1987年1月2日-)是塞尔维亚奥运游泳选手。希格尔参加了2008年北京奥运会的100米蛙泳和200米蛙泳项目,分别取得
  • 桂樱 Roem.桂樱(学名:),原产地在黑海靠近西南亚德一带,以及东南欧洲,从阿尔巴尼亚到保加利亚东部,从土耳其到高加索山脉,伊朗北部,甚至西欧,都有种植。在北美洲也称为“英格兰月桂”。常绿