关于“如何只用2GB内存从20亿,40亿,80亿个整数中找到出现次数最多的数?”的一种思路
2019-06-12 17:52 新田三十三 阅读(608) 评论(0) 编辑 收藏 举报小弟不才,只懂一些c#的皮毛,有一些想法,
int32值范围大概在-20亿——20亿,按hashtable一个keyvalue占8B的设定来说,最大可以存储大约2.5亿个 数字-次数对。
那么,可以将int32的范围分成大约分成16组,每组去遍历这20亿个数字,然后将每组的最大值保存下来,最后再从这16组的最大值再比较一次就可以了