今天给问到了个问题,看看谁可以给点意见。

haxiang_3 2009-04-28 03:55:52
在一个很大的文本中,找到出现概率最大的一个字母。 假设这个文本有3G这么大。 请给出一个最效率的算法。 谢谢。。。我觉得有难度 今天问了下,我直接蒙了。。在一个很大的文本中,找到出现概率最大的一个字母。 假设这个文本有3G这么大。 请给出一个最效率的算法。 谢谢。。。我觉得有难度 今天给问了下,我直接蒙了。。
...全文
81 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lambochan 2009-04-29
  • 打赏
  • 举报
回复
扫描一次,桶式排序..
haxiang_3 2009-04-29
  • 打赏
  • 举报
回复
3G的话 根本读不进内存啊 是不是 。。。
lucklizhan 2009-04-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 stonewater 的回复:]
如果不是要统计完全准确的话,可以抽取3G中的一部分数据做个概率统计就好了,比如开头512k 中间在512k 等等.抽取的数据越多相对越准确
[/Quote]

这个方法好!
ok1234567 2009-04-29
  • 打赏
  • 举报
回复
按字节值统计,统计计数值需要 256*4 个字节内存
将文件扫描一遍就可以了,每次读取文件簇*n个字节,理论上有较好的效率
stonewater 2009-04-29
  • 打赏
  • 举报
回复
如果不是要统计完全准确的话,可以抽取3G中的一部分数据做个概率统计就好了,比如开头512k 中间在512k 等等.抽取的数据越多相对越准确
liuzxchina 2009-04-28
  • 打赏
  • 举报
回复
好像不需要什么特别的算法
直接统计就可以了
菜牛 2009-04-28
  • 打赏
  • 举报
回复
字母的话就是做一个表,每个字母对应一个计数,逐个读取累计到表中,没什么技术和效率可言;问题是在文件的读取上,可以用内存映射文件的方式。
lianlove 2009-04-28
  • 打赏
  • 举报
回复
堆排序?
xghuzd 2009-04-28
  • 打赏
  • 举报
回复
想想看.

19,464

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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