问题是实现一个可以读取 10GB 文件并存储所有不同单词及其出现次数的 Web 服务。需求需要以 O(n) 或更好的复杂度来解决。问题的下一部分是编写所有客户端代码以允许基于按键进行搜索。 我该如何解决这个问题?您有什么建议,主要的副标题是什么?我们需要使用某种内存缓存吗?一台计算机可以搜索 10GB 的数据吗?我是否应该考虑基于语言的不同单词的近似值(例如,在《破解编码面试》中,我读到一种语言中有大约 600,000 个不同的单词)。如何处理以这种方式构建的系统的可扩展性?我真的需要帮助来构建我的想法!预先感谢!
最佳答案
您不应该为此使用 JavaScript。几乎任何语言都会有更好的性能。
但是,先把这个放在一边,让我们回答这个问题。您需要做的是创建一个 Set 并迭代所有单词。考虑到数据的大小,您可能希望事先或在读取时将其分割成 block 。
每次只需将键添加到 Set 中就足够了,因为 Set 仅包含唯一元素。
或者,如果您有 10+GB 的 RAM,只需将整个内容放入一个数组中并将其转换为一个集合即可。然后您将能够读取唯一值。不过,这需要相当长的时间。
关于javascript - 如何使用 JavaScript 查找 10 GB 或更大文件中的所有唯一单词并启用搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45271760/