我们是否可以降低比较数组中每个用户的复杂性?

时间:2019-06-11 06:15:27

标签: arrays data-structures time-complexity

我们有很多用户。由于某些原因,我们希望将每个用户与其他每个用户进行比较。它的复杂度是否可以小于n ^ 2? 目前,比较的复杂度为n ^ 2。我希望它小于n ^ 2。

2 个答案:

答案 0 :(得分:0)

类似评论中提到的方法将起作用。在数组中查找元素只是一个问题。我想您正在选择一个用户,然后获得例如该用户的名称,然后您在数组中找到了该用户以查找该用户的其他信息。您可以按该键值对用户进行排序,然后可以在O(logn)中找到它。您也可以使用哈希表,该哈希表将在固定时间内完成工作。

答案 1 :(得分:0)

如果您确实需要将每个用户与每个其他用户进行比较,那么复杂度就定义为O(n * n)。

在实践中(如评论中所述),要求不太可能是“将每个用户与每个其他用户进行比较”,而是通常是“对用户进行分类”或“将最相似的用户查找给每个给定的用户”或类似的东西。这些任务具有较低的复杂性。但是,您需要告诉我们您要解决的问题是什么。