【发布时间】:2009-09-10 00:28:46
【问题描述】:
我有一个文件,其中包含许多随机整数(大约一百万),每个整数由空格分隔。我需要找到该文件中出现频率最高的 10 个数字。在java中这样做最有效的方法是什么? 我能想到 1. 创建一个哈希映射,键是文件中的整数,值是计数。对于文件中的每个数字,检查该键是否已经存在于哈希映射中,如果是,则 value++,否则在哈希中创建一个新条目 2.制作一个BST,每个节点都是文件中的整数。对于文件中的每个整数,查看 BST 中是否存在节点,如果是,则执行 value++,value 是节点的一部分。
如果我能想出好的散列函数,我觉得散列映射是更好的选择, 有人可以建议我这样做最好吗?我可以使用其他任何有效的算法吗?
【问题讨论】:
标签: java data-structures performance