• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >编程问答 > 如何在一堆数字中快速找到出现次数最多的一个?

如何在一堆数字中快速找到出现次数最多的一个?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-07

佚名通过本文主要向大家介绍了数字出现次数统计工具,数字出现次数统计器,统计数字出现次数,数字次数统计器,excel数字出现次数等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:如何在一堆数字中快速找到出现次数最多的一个?
描述:

一堆数字里有一个数占了整堆数字的一半以上,另外的数字都是随机的,如何快速找到这个出现最多的数字?


解决方案1:

数据量大的话用分治法:最小分割单位为3,不过这样会有些误差,呵呵
数据量小的话用hash法

解决方案2:

编程之美的题目...百度面试还问过...

解决方案3:

楼上的方法不能说不对,不过 , 这个问题是有经典算法的:
先举个例子吧:

2 3 4 4 5 5 4 4 4

上面这个数列 , 4 明显是要找的数 。 因为4的个数占了整堆数字的一半以上 , 所以我们可以把数列分为下面几对:

2 4
3 4
5 4
5 4
4

这样每对都有一个4 , 最后还剩下4 , 说明 4 就是我们要找的数 ,算法的思想就是,不停的消去数字对 , 最后剩下的数 , 就是要找的数字。
所以算法的伪代码如下:

 (1)计数器count置1,另c=A[1];
 (2)从A[2]开始向后扫描,for j=2 to n
             若a[j]与c相等,则count++;
             若a[j]与c不等,则count—
             若count==0,则对A[j+1...n]寻找多数元素候选者。
             
             
 int Candidate(int A[],int m ,int n)  
    {//寻找A[m...n]中多数元素候选者
     c=A[m];count=1;
     for(j=m+1;j<n&&count>0)
     {
        if(A[j]==c)
            count++
        else count--;
        }
        if(j==n)return  c;
        else return canditate(A, j+1 , n); //对则对A[j+1...n]寻找多数元素候 选者。
     }

具体的参考: 《算法设计技巧与分析》 p98


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 如何在一堆数字中快速找到出现次数最多的一个?

相关文章

  • 2017-06-07 HTTP头中的缓存只设置了一天过期时间?
  • 2017-06-07 pyqt中QTableWidget设计表格列表头(行号所在列)宽度
  • 2017-06-07 segmentfault有没有QQ交流群
  • 2017-06-07 大家看redis源码主要学习什么部分
  • 2017-06-07 哪有jbpm-starters-kit-323的下载?或更高版本
  • 2017-06-07 我想了解下,如果我有个视频文件上传到了一个临时空间,然后我做了一个复制出来(Qiniu_RS_Copy)复制到另外一个空间
  • 2017-06-07 正则表达式匹配标签xml标签问题?
  • 2017-06-07 xml与面向组件开发
  • 2017-06-07 关于中文网页爬虫显示乱码的问题
  • 2017-06-07 为什么""isFalse==False,而且""isTrue==False

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • (flask)python空格处理
    • 登陆知乎验证码问题?
    • HTML5输入框只能输入汉字、字母、数字、标点符号?正则如何写?
    • phpcurl抓取网页数据时怎么处理flah网页
    • 七牛云存储是不是无法邀请好友了?
    • qiniucom域名再次出现问题,什么时候能彻底解决呢
    • openWORDCOUNT,"wc-l$file""|"什么意思啊?
    • 如何能更好地理解并实现服务容器,服务提供者这些概念?
    • 绑定了自定义域名后,经常无法访问
    • 图片不能显示缩略图,插入文章不显示

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有