多数投票算法

✍ dations ◷ 2025-11-30 02:01:38 #算法

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

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

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

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

相关

  • 不及物动词不及物动词(又叫自动词)与及物动词相反,在不及物动词之后不直接支配受词。(也就是说,在主宾格语言比如说德语中不支配宾语)。及物动词和不及物动词的区别在于所带的宾语不同。不
  • 甘油三酸脂甘油三酯(triglyceride, TG, triacylglycerol, TAG, or triacylglyceride),亦作三酸甘油酯,常称为油脂,为动物性油脂与植物性油脂的主要成分,一种由一个甘油分子和三个脂肪酸分子
  • 洋人外国人是指非本国籍的公民或人民,反义词为本国人(国民)。中文里该词在汉朝时已经出现。在许多国家中,外国人在法律上的权力、权利和义务如参政权、工作权、财产权等都与本国人有
  • N端N端(亦作N-端,英语:N-terminus),又称氮端、氨基端,指多肽链具有游离的α氨基的末端。在转译过程中,多肽链是从N端往C端合成的,因而在书写表示多肽序列时,从N端开始书写,从左到右写到C
  • 西南航空西南航空(英语:Southwest Airlines,NYSE:LUV)是一家美国主要的航空公司,也是世界最大的廉价航空公司,总部位于得克萨斯州达拉斯。它由赫伯·凯莱赫创立于1967年,随后在1971年更名为
  • 朝鲜人民军FM广播电台朝鲜人民军FM广播电台(朝鲜语:조선인민군FM방송/朝鮮人民軍FM放送)是朝鲜朝鲜人民军的调频广播电台。在2009年5月正式开播,主要在朝韩非军事区广播。2009年初,以前线哨兵放送的名
  • 广野龙广野龙(学名:"Hironosaurus")是恐龙的一属,是个非正式名称。化石是于日本福岛县的广野町发现,地质年代为上白垩纪,被推论是属于鸭嘴龙科。它的化石十分零碎,包括了牙齿及可能是尾巴
  • 板齿鼠板齿鼠(学名:)为鼠科板齿鼠属的动物,原生于中国、印度、印尼、老挝、缅甸、尼泊尔、斯里兰卡、泰国、越南,并引进马来西亚。分布于中国的广西、广东、云南、四川、贵州、福建等地
  • 萨丁尼亚海萨丁尼亚海是地中海的一部分,位于西班牙的巴利阿里群岛和意大利的萨丁尼亚岛之间,最深点在梅诺卡岛西北面150公里,水深约3,000米。坐标:40°00′N 6°00′E / 40.000°N 6.000°
  • 对称闭包在数学中,集合 上的二元关系 的 对称闭包 是 上包含 的最小的对称关系。例如,若定义 为机场的集合,并且 当且仅当 “存在从 到 的直航航班”,则 的对称闭包为关系 满