多数投票算法

✍ dations ◷ 2025-12-10 16:26:04 #算法

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

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

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

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

相关

  • 志愿消防局志愿消防局,就是由志愿者消防员组成的消防局,既有完全由志愿者组成的志愿消防局,也有部分职业消防员和志愿消防员一同组成的消防局。志愿消防队员一般并不领取薪酬,这一机构大多
  • P-3猎户座海上巡逻机P-3“猎户座”(英语:P-3 Orion)美国洛克希德公司设计生产的一种海上巡逻机,已被世界许多国家所采用,主要用途是作为海上巡逻(英语:Maritime patrol)、侦察与反潜作战。1957年8月,美国
  • 1976年蒙特利尔夏季奥运会第二十一届夏季奥林匹克运动会(英语:the Games of the XXI Olympiad,法语:les Jeux de la XXIe Olympiade),于1976年7月17日至8月1日在加拿大魁北克省蒙特利尔举行。当年有三个城
  • 仙游话仙游话(兴化平话字:Hsing-iú-uā)是莆仙语(兴化语)的一种方言,通行于莆田的仙游县一带。仙游话一般以城关话为代表,其使用者以仙游县为中心,福州的永泰县,泉州的泉港区以及惠安北部
  • 忠清北道忠清北道(韩语:충청북도/忠淸北道 Chungcheong-buk do),是位于韩国中部的一个行政道,东与江原道和庆尚北道以小白山脉为界,西与忠清南道以锦江为界,南与全罗北道接壤,北与江原道和京
  • 濂溪区濂溪区是江西省九江市的一个市辖区,原名庐山区。面积548平方千米,人口26万。1980年为庐山区。1984年郊区并入。2016年3月29日,国务院(国函58号)批复同意,将九江市庐山区的牯岭镇划
  • 卡塔戈卡塔戈是哥斯达黎加的城市,也是卡塔戈省的首府,位于该国中部,始建于1563年,面积152平方公里,海拔高度1,435米,每年平均降雨量1,402毫米,2008年人口156,600。
  • 利比亚华人华人,自2011年利比亚内战爆发以来,人数急剧减少。 随后的内战和暴力事件使得商业活动不稳定,迫使包括中国人在内的外国人撤离。在2014年估计当地的华人只有340人。2011年内战期
  • 下两站下两站是位于四川省巴中市南江县下两镇的一个铁路车站,邮政编码636648。车站建于2010年,有广巴铁路经过该站,现仅办货运业务,不办理客运业务。车站距离广元南站133公里,隶属成都
  • 利克镇足球俱乐部利克镇足球俱乐部(英语:Leek Town Football Club)是一支英格兰足球俱乐部,位于斯塔福德郡利克,现于北部超级联赛甲组南区比赛。球队的绰号为蓝军(The Blues),主场为哈里森公园球场