多数投票算法

✍ dations ◷ 2025-12-05 18:58:19 #算法

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

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

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

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

相关

  • 秋水仙素秋水仙素(英语:Colchicine)是最初萃取于百合科植物秋水仙的种子和球茎的一种植物碱。它是白色或淡黄色的粉末或针状晶体,有剧毒。最先用于治愈风湿病和痛风,但是它的泻药及促进呕
  • 苏萨苏萨(波斯语:شوش‎,转写:Shush,中国大陆译作苏撒,天主教思高圣经译作稣撒)是位于伊朗的胡齐斯坦省的城市。2005年的人口数约为64960人。公元1901年,著名的汉谟拉比法典(现存于法国
  • 地层学地层学是地质学的一个分支,是地质学的基础学科,是在19世纪初发展起来的一个学科,最早用于研究沉积岩和火山喷出的层序。现在的研究包括地层的时代和地理分布,地层的分类,各种岩石
  • 毛卷云毛卷云(学名:Cirrus fibratus,缩写: Ci fib ),是卷云的一种。毛卷云的外观类似直线或不规则的白色丝线,形态纤细,末端不呈钩状或簇状。在大多数情况下,毛卷云的“云丝”互不重叠。
  • 邹承恩邹承恩(1980年11月4日-),台湾男演员。原本于IT产业当上班族,2007年决定暂缓人生既定步调,参加蔡岳勋2008年度大戏男主角选拔,最后成功参与演出当红戏剧《痞子英雄》,并演唱原声带〈
  • 北国英雄《北国英雄》,原名《雪女王》,是一部由北京金色池塘传媒股份有限公司出品的,近代革命题材的,抗日战争剧。该剧由杨阳执导,王裕仁担任总制片,郭品超、热依扎、乔任梁、安志杰、尹铸
  • 奥斯特里兹奥斯特利茨战役(1805年12月2日),是拿破仑战争中的一场著名战役。75,000人的法国军队在拿破仑的指挥下,在波西米亚的奥斯特利茨村(位于今捷克境内)取得了对87,000俄罗斯-奥地利联军
  • 国家联盟国家联盟(National League,简称国联)是美国职棒的组织之一,成立于1876年2月2日,前身为国家协会。1902年底,与美国联盟召开“辛辛那提会议”,统一赛制、规则和管理机制,并且从1903年
  • 艾蒂安·裴蜀艾蒂安·裴蜀(法语:Étienne Bézout,1730年3月31日-1783年9月27日),法国数学家。他撰写了《代数方程通论》(),1779年在巴黎出版,书中有不少有价值的新内容,特别是关于消元法和方程根的
  • 亨利二世 (英格兰)亨利二世(短斗篷)(Henry II Curmantle,1133年3月5日-1189年7月6日)是英格兰国王(1154年—1189年在位),他也是法国的诺曼底公爵(1150年起)、安茹伯爵(1151年起)和亚奎丹公爵(1152年起)。他所