假设我有两个对象列表,我想将列表一中的每个对象与列表二中的每个对象进行匹配。
这可能是人们会立即提出的算法。
for( it_1=list_1.begin() ; it_1!=list_1.end() ; it_1++ )
{
for( it_2=list_2.begin() ; it_2!=list_2.end() ; it_2++ )
{
//now match
match(*it_1,*it_2);
}
}
我想知道是否有更好的方法可以做到这一点。这需要O(n1 * n2),其中n1和n2分别是list_1和list_2的长度。
答案 0 :(得分:1)
你可以在这里使用多线程,将list1分为2或3个部分,具体取决于你要查找的大小和效率,并在每个线程中使用list2运行匹配算法,然后将结果整理回调用者。 / p>
看看它是否有帮助..