我有一个帖子列表,其中每个帖子都包含一个标签列表。查找与标签类似的帖子的最有效方法是什么?也就是说,我如何在与当前帖子相似的标签数量之后对帖子列表进行排序?
我一直在尝试使用嵌套的for循环,比较器和哈希映射,但我无法弄清楚复杂的最简单方法是什么。
答案 0 :(得分:1)
您可以使用当前帖子计算列表中每个帖子的代码的相似度 - 它需要线性O(n)
时间,然后排序O(n log(n))
时间,因此您的算法将完全适用于O(n log(n))
如果不扫描所有帖子的所有标签而不进行索引,则无法比较相似性。
至于索引 - 有可能构建i。即反向索引,如标签 - >一组帖子并用它来查找具有相同标签的帖子并仅对它们进行排序(可能您可以跳过与当前无关的帖子 - 取决于业务需求)。但假设你仍然需要排序 - 它仍然是O(n log(n))
但通常n应该更小