多数投票算法

✍ dations ◷ 2025-12-01 22:52:18 #算法

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

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

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

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

相关

  • 帝舜.mw-parser-output ruby>rt,.mw-parser-output ruby>rtc{font-feature-settings:"ruby"1}.mw-parser-output ruby.large{font-size:250%}.mw-parser-output ruby.larger{fon
  • 鲁道夫·朱利安尼鲁道夫·威廉·路易斯·“鲁迪”·朱利安尼,KBE(英语:Rudolph William Louis "Rudy" Giuliani,1944年5月28日-)是美国律师、检察官、商人及共和党的美国政治人物,出身于纽约州。朱
  • 博伊科·鲍里索夫博伊科·梅托迪耶夫·鲍里索夫(保加利亚语:Бойко Методиев Борисов;1959年6月13日-),保加利亚政治人物,2009年—2013年、2014年-2017年、2017年至今任总理。此
  • 联邦党联邦党(英语:Federalist Party),又叫联邦同盟党,美国开国政党,1789年至1824年存在。由美国第二任总统约翰·亚当斯和美国第一任财政部长亚历山大·汉密尔顿所共同成立。联邦党执政
  • 安阳县安阳县是中国河南省安阳市下辖的一个县,位于河南省北缘,安阳市北部。安阳县南与汤阴县、鹤壁市毗邻,北与河北省磁县、临漳县、涉县隔河相望,西与林州市接壤,东与内黄县相连。全县
  • 骨传导骨传导是一种声音传导方式,即通过将声音转化为不同频率的机械振动,通过人的颅骨、骨迷路、内耳淋巴液传递、螺旋器、听神经、听觉中枢来传递声波。相对于通过振膜产生声波的经
  • 三齿驼蝶螺三齿驼蝶螺(学名:),是有壳翼足目驼蝶螺科的一种。主要分布于韩国、中国大陆、台湾,常栖息在浅海沙底。三齿驼蝶螺的分布极为广泛,包括地中海、大西洋(亚速尔群岛、佛得角与缅因湾)、
  • 数字前缀数字前缀 (英语:Numeral prefix) 是派生于数词或其他数字的前缀。在英语和其他欧洲语言,这些前缀用来造一系列包含表示数量信息的词。数字前缀有拉丁语、希腊语、梵语三种,但主要
  • 西北密苏里州立大学西北密苏里州立大学(英语:Northwest Missouri State University)是一所坐落在美国密苏里州玛丽维尔的公立大学。该校建于1905年,作为教师学院出身,提供本科和研究生课程。校园的
  • 滚石杯滚石杯是直布罗陀足球最高层级杯赛,为自1895年起直布罗陀足球协会 (GFA)主办赛事。2014年滚石杯为第一个参加欧霸杯的队伍,林肯红魔鬼足球会已经获得联赛冠军并进入2014–15年