关于按属性配对用户的问题..算法/数据结构

时间:2011-06-11 03:47:29

标签: c++ c algorithm data-structures

我对算法有疑问。

  

我们获得了一系列用户,并且   每个用户的属性集。如   我们读一个用户后,我们应该配对   它与另一个以前读过的用户   具有相同属性的人   目前未配对,如果是这样的用户   存在。

     

如果用户无法配对,我们   应该保持该用户在未配对   集。

     

问题是,

     
    
        
  1. 我们如何有效地实施这一匹配流程......
  2.     
  3. 如果我们允许近似匹配,我们将如何实现它     属性也是......
  4.        

第一个问题的解决方案,我发现使用trie数据结构,其中我们按排序顺序排列每个用户的属性,并开始将atttributes插入到trie中,用户连接到leaf。如果有新用户进入,我们会遵循相同的trie,如果我们发现以前的用户已连接到该叶子,那么我们找到了该对,否则我们将该新用户插入到叶子中。

请提出您的想法或对此解决方案的任何新想法,并帮助我解决第二个问题。我在第二个问题上完全无能为力......

使用一些示例代码或示例进行说明会有所帮助..

...谢谢

1 个答案:

答案 0 :(得分:2)

所有未配对用户的哈希表,key =用户属性。

当使用输入并被赋予属性时,在哈希中查找他。

如果找到,那么他就配对了。从哈希中删除第二个(配对用户)使用 不要仅将输入的用户添加到哈希值。

如果没有找到,请将他添加到哈希(他正在试探他的一对)。

完成