多数投票算法

✍ dations ◷ 2025-12-02 18:13:45 #算法

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

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

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

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

相关

  • 多粘菌素B多粘菌素B(英语:Polymyxin B,又名多黏菌素B)是一种主要用于治疗 革兰氏阴性菌感染药物。它是从一种名为Bacillus polymyxa的细菌中被分离出来的。多粘菌素B是多粘菌素的一种,由两
  • 高尿酸血症高尿酸血症(英语:Hyperuricemia)是指血液中尿酸水平异常高的表现。在人体中,正常的尿酸浓度范围的上限是:男性400 µmol/L (6.8 mg/dL),女性360 µmol/L(6 mg/dL)。许多药物如L-多
  • 负数,在数学上指小于0的实数,如−2、−3.2、−807.5等,与正数相对。和实数一样,负数也是一个不可数的无限集合。这个集合在数学上通常用粗体R−或
  • 汉罗台文汉罗台文,简称汉罗(闽南语:.mw-parser-output .sans-serif{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Lato,"Helvetica Neue",Helvetica,Arial,sans-se
  • 查尔斯·W·弗雷班克斯查尔斯·华伦·费尔班克斯(Chareles Warren Fairbanks,1852年5月11日-1918年6月4日),美国政治人物,共和党人,曾任第26任美国副总统、联邦参议员等职。阿拉斯加州第二大城市费尔班克
  • PD-1/PD-L1抑制剂PD-1/PD-L1抑制剂是一组用于治疗癌症的免疫检查点抑制剂 。 PD-1和PD-L1都是存在于细胞表面的蛋白质。此类的免疫检查点抑制剂正在成为几种癌症的一线治疗药物。 PD-1/PD-L1
  • 硫酸铋硫酸铋是一种无机化合物,化学式为Bi2(SO4)3。硫酸铋可由金属铋、氧化铋或氢氧化铋与浓硫酸反应得到。硫酸铋遇水产生碱式盐沉淀。
  • 鲁道夫·赫尔曼·陆宰鲁道夫·赫尔曼·陆宰(德语:Rudolf Herman Lotze,1817年5月21日-1881年7月1日)是一位德国 哲学家、逻辑学家。他还拥有医学学位,并且精通生物学。他的医学研究成为科学心理学的先
  • 卓奥玛尔特·奥托尔巴耶夫卓奥玛尔特·奥托尔巴耶夫(Djoomart Kaipovich Otorbaev,1955年8月18日-)是一名吉尔吉斯斯坦政治人物,毕业于列宁格勒国立大学,数学物理学博士。曾任总统特别顾问、财政部长、第一
  • 创造性破坏创造性破坏(德语:Schöpferische Zerstörung;英语:creative destruction,又称创造性毁灭)是由奥地利经济学家约瑟夫·熊彼特提出的重要观点,是其创新理论与经济周期理论的基础。“