我有一个用户对是/否投票问题的回答的 MySQL 表。看起来有点像这样:
| user_id | poll_id | response
| 111 | 1 | 'yes'
| 111 | 2 | 'no'
| 111 | 3 | 'no'
| 222 | 1 | 'yes'
| 222 | 2 | 'yes'
| 222 | 3 | 'yes'
| 333 | 1 | 'no'
| 333 | 2 | 'no'
| 333 | 3 | 'no'
对于给定的 user_id,我想计算他们的响应与每个其他用户的响应之间的相似性。因此,用户 111 和用户 222 的相似度为 0.333(因为他们有 3 个相同的响应中的 1 个),用户 111 和用户 333 的相似度为 0.666(因为他们有 3 个相同的响应中的 2 个)。
然后,我想确定给定用户的相似度中值,并将其与所有其他用户的相似度中值进行排名,以衡量该用户的“唯一性”。
这种操作的时间复杂度是多少?
*(注意:目前,我的响应表中大约有 25,000 个 user_ids、400 个 poll_ids 和大约 500,000 行。显然,并非所有用户都对每个投票问题做出响应。这会影响时间复杂度计算吗?)*