多数投票算法

✍ dations ◷ 2025-11-22 17:35:00 #算法

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

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

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

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

相关

  • 信使号信使号(英文缩写:MESSENGER,英文全写: MErcury Surface, Space ENvironment, GEochemistry and Ranging,意译为“水星表面、太空环境、地球化学与广泛探索”)是美国国家航空航天局
  • Google PayGoogle Pay是Google的移动支付服务,存储于Google账户内的支付信息将集成到各项Google产品服务中而更方便交易或进行非接触式付款和网络购物。截至2018年1月8日,Google Wallet
  • 弗雷德里克·奇卢巴弗雷德里克·雅各布·泰塔斯·齐卢巴(Frederick Jacob Titus Chiluba,1943年4月30日-2011年6月18日)是赞比亚政治家,于1991年11月至2002年1月担任该国第二任总统,是该国第一位由民
  • 见内文双
  • 舒绣文舒绣文(1915年-1969年3月17日),中国电影与话剧演员,中国电影史上第一个女配音演员,被誉为中国影剧界“四大名旦”之一。舒绣文于1915年生于安徽省安庆,六岁时移居北京。14岁时因家
  • 凤城凤城市是中华人民共和国辽宁省丹东市代管的一个县级市,位于辽宁省东部,为中国第一个由少数民族自治县撤县建市并保留民族自治地方的待遇和各项优惠民族政策的城市。公元前128
  • 梅谦次郎梅 谦次郎(うめ けんじろう;1860年7月24日-1910年8月26日)是日本明治时代的法学家,专长为民法,有“日本民法之父”之称号。梅谦次郎曾任东京帝国大学法律系教授、法科大学长;他不仅
  • 台银人寿台银人寿保险公司,简称台银人寿,是台湾一家人寿保险公司,前身为中央信托局人寿保险处。2008年1月1日台湾金融控股公司成立后,台银人寿为其旗下寿险子公司,为国内唯一公营的人寿保
  • 防暴盔防暴盔是一款为执法机构和军队设计,用以保护人员的头部,脸部和眼睛的头盔。它可以抵御近战武器,或砖块一类常见于暴动埸合的投射物的攻击。很多现代的防暴盔使用了能防御有害物
  • 2014年新北新店气爆事故2014年新北新店气爆事故,简称2014年新店气爆事故,是2014年8月15日中午12时,发生在台湾新北市新店区安康路2段159巷“永保安康社区大楼”的A栋三楼某户民宅发生的天然气外泄爆炸