多数投票算法

✍ dations ◷ 2025-11-24 18:47:55 #算法

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

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

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

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

相关

  • 精神活性物质精神药物(英语:psychoactive drug),又称精神药品(psychopharmaceutical,或psychotropic)。有些精神药品具有医疗和科学价值。一种化学物质的概称,这些物质能够穿越血脑屏障,直接作用
  • 应用程序服务器应用程序服务器(英语:application server)是一种软件框架,提供一个应用程序运行的环境。用于为应用程序提供安全、数据、事务支持、负载平衡大型分布式系统管理等服务。这个名词
  • 印度宪法印度宪法为印度最高法律,是世界上所有主权国家中最长的成文宪法。其主要建构者是阿姆倍伽尔。宪法于1949年11月26日由制宪会议通过,1950年1月26日生效。自此印度自治领成为当
  • 巴沙尔·阿萨德巴沙尔·阿萨德(阿拉伯语:بشار الأسد‎ Baššār al-ʾAsad,1965年9月11日-),现任叙利亚总统兼武装部队总司令、叙利亚复兴党总书记、元帅军衔、已故前总统哈菲兹·阿萨
  • eIF4E1IPB, 1IPC, 1WKW, 2GPQ, 2V8W, 2V8X, 2V8Y, 2W97, 3AM7, 3TF2, 3U7X, 4AZA, 4DT6, 4DUM· translation initiation factor activity · protein binding· cytosol · mR
  • 特拉维斯县特拉维斯县(Travis County, Texas)是位于美国德克萨斯州中部的一个县。面积2,647平方公里。根据美国2000年人口普查,共有人口812,280人。县治奥斯汀也是州的首府。成立于1840年
  • 丽蝇丽蝇是属于丽蝇科的苍蝇。丽蝇外表一般都呈金属色,长约10-12毫米。丽蝇成虫的外表有光泽的金属色,一般都是蓝色、绿色或黑色。触角分三节及有芒。整条触角芒都呈羽毛状,第二节
  • 坎萨玛乌帕齐拉坎萨玛乌帕齐拉(孟加拉语:খানসামা,英语:Khansama Upazila)是孟加拉国迪纳杰布尔县的一个乌帕齐拉,位于朗布尔专区的迪纳杰布尔县。。据1991年孟加拉国人口普查(英语:1991 Ban
  • 休曼法案休曼反垄断法案(英语:Sherman Antitrust Act,1890年7月2日通过),又译为谢尔曼反垄断法,经常被简称为休曼法案(Sherman Act),美国联邦的反商业信托法,要求美国联邦政府有责任去调查并且
  • 乔治·马尼亚克乔治·马尼亚克(希腊语:Γεώργιος Μανιάκης,转写:Georgios Maniaces、Georgios Maniakis,或Georgios Maniaches,意大利语:Giorgio Maniace,-1043年),东罗马名将,1042年的