1m是多少kb(1m是多少kb)

每晚10点,捕捉技术思维,洞察创业资源。“分而治之”方法(也称为“分而治之”)是有效算法设计中广泛使用的技术。有一个文件,大小为1G,其中每行是一个英文单词,字

每晚10点,捕捉技术思维,洞察创业资源。

“分而治之”方法(也称为“分而治之”)是有效算法设计中广泛使用的技术。

有一个文件,大小为1G,其中每行是一个英文单词,字长不超过16字节,内存限制为1M。请设计一个算法,返回出现频率最高的100个单词。

乍一看,要处理的文件大小是1G,但内存只有1M。我们知道用1M内存空处理1G文件是不现实的。按照1M的上限,假设每个字是16字节,1M内存可以处理多少个字?

我们来计算一下,1m = 1024 kb = 1024 * 1024 b . 1m/16b = 2^16字数,那么1G有多少字呢?有2 ^ 26个单词,但实际上应该不止这些,因为我们是按照最大单词长度来计算的,有可能有些单词只有两个字母。

大数据面试题:考察1M = 1024 KB?

1 .方案的总体思路:

分而治之/hash映射:顺序读文件中,对于每个词x,取hash(x)%5000,然后按照该值存到5000个小文件(记为x0,x1,...x4999)中。这样每个文件大概是200k左右。如果其中的有的文件超过了1M大小,还可以按照类似的方法继续往下分,直到分解得到的小文件的大小都不超过1M。hash统计:对每个小文件,采用trie树/hash_map等统计每个文件中出现的词以及相应的频率。堆/归并排序:取出出现频率最大的100个词(可以用含100个结点的最小堆),并把100个词及相应的频率存入文件,这时我们又得到了5000个文件。最后把这5000个文件进行归并(类似与归并排序)的过程。

类似的方案应该还有很多。我们要一起学习,一起学习,我们的经验是通过亲身实践总结出来的。以上仅代表个人观点。我想把这个分享给大家,也希望大家可以留言补充自己的不足。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

作者:美站资讯,如若转载,请注明出处:https://www.meizw.com/n/51387.html

发表回复

登录后才能评论