大数组中寻找出众数,要求高效算法。

RiweiChen 2011-04-08 12:41:43
如题,欢迎给出意见。
...全文
142 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xmu_才盛 2011-04-14
  • 打赏
  • 举报
回复
你的大数组中存放的数值 有界限吧? 比如小于某个数N

声明一个 记录元素出现次数的数组 szElementNum[N],初始化为零
声明两个下标
int nBig = 0, nCur = 0; // nBig为众数
for(扫描大数组)
{
出现元素e;
szElementNum[e] ++;
nCur = e;
if(szElementNum[nCur] > szElementNum[nBig])
nBig = nCur;
}

最后 nBig就为 众数
天外小小 2011-04-14
  • 打赏
  • 举报
回复
我想了一个不知道好不好
首先排序,然后建立2个新数组,一个数组存储相等的数A[N](只存1个)
另一个数组存储存储A[N]中相等数的个数B[N],
最后就可以根据B[N]中最大的数求出 出众数

64,318

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧