按类似元素的元素对列表进行排序

时间:2013-10-16 10:55:06

标签: java sorting arraylist

我有一个帖子列表,其中每个帖子都包含一个标签列表。查找与标签类似的帖子的最有效方法是什么?也就是说,我如何在与当前帖子相似的标签数量之后对帖子列表进行排序?

我一直在尝试使用嵌套的for循环,比较器和哈希映射,但我无法弄清楚复杂的最简单方法是什么。

1 个答案:

答案 0 :(得分:1)

您可以使用当前帖子计算列表中每个帖子的代码的相似度 - 它需要线性O(n)时间,然后排序O(n log(n))时间,因此您的算法将完全适用于O(n log(n))

如果不扫描所有帖子的所有标签而不进行索引,则无法比较相似性。

至于索引 - 有可能构建i。即反向索引,如标签 - >一组帖子并用它来查找具有相同标签的帖子并仅对它们进行排序(可能您可以跳过与当前无关的帖子 - 取决于业务需求)。但假设你仍然需要排序 - 它仍然是O(n log(n))但通常n应该更小