【发布时间】:2022-11-08 08:02:58
【问题描述】:
我的任务是计算文本文件中字符串(单词)的频率。您认为哪种数据结构合适(基于实现难度、内存使用和算法的时间复杂度)?我有哈希表、二叉搜索树和堆,但我不知道该选择哪一个?此外,如果有比我提到的更好的数据结构,那也很棒。提前致谢。 注:文本文件可能非常大。
【问题讨论】:
-
你计算文本文件中每个单词的频率,还是只计算一个小子集?你想优化什么?
-
“注意,文本文件可能非常大。”我最大的字典单词列表文本文件只有 4Mb 左右。除非输入文本文件包含随机乱码,否则您将从任何大小的输入中获得的全部内容。您不需要内存中的整个输入文件。
-
“文本文件可能非常大”是否意味着大于可用内存?
-
如果您要计算文本文件中每个单词的频率,那么字典将是最佳选择,因为当您更新计数时,它的搜索复杂度为 O(1)。
-
如果您需要对 3 条不同的评论重复相同的信息,则应编辑问题以添加该信息。
标签: c algorithm data-structures