Give是一组元素,其中每个元素都有一个分数和一个bitpointer。我想创建一个所有对的列表,其中这两个元素的bitpointers是不相交的。
我天真的伪代码方法是:
result = new_list_of_pairs()
foreach(i = 0; i < set.size; i++)
foreach(j = i+1; j < set.size; j++)
if(set[i].bitpointer & set[j].bitpointer == 0)
result.add(set[i], set[j]);
}
}
是否有更好的算法可以解决这个问题,因为这个算法的运行时间是O(n ^ 2)?
答案 0 :(得分:2)
在最坏的情况下,不可能获得更好的时间复杂度,因为可能有O(n^2)
个这样的对。