具体来说:给定两个对象,我可以将它们的不相似性计算为一个数字,即度量 - 更高的值意味着更少的相似性,0意味着对象具有相同的内容。计算此数字的成本与较小对象的大小成比例(每个对象都有特定大小)。
我需要快速查找与某个对象相似的对象集。
具体来说:我需要生成一个数据结构,将任何对象o映射到与o不相似度超过d的对象集,其中d是某个不相似度值,列出集合中的对象所需的时间不超过数组或链接列表中的时间(也许它们实际上就是)。通常,集合将远小于对象总数,因此执行此计算真正值得。如果数据结构假设固定的d,那么它已经足够好了,但如果它适用于任意d,那就更好了。
您以前见过这个问题或类似的问题吗?有什么好的解决方案吗?
具体来说:一种直接的解决方案涉及计算所有对象对之间的不相似度,但这很慢 - O(n2),其中n是对象数量。是否有更低复杂度的通用解决方案?