生成不相交的位指针对列表

时间:2014-10-01 18:48:24

标签: algorithm

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)?

1 个答案:

答案 0 :(得分:2)

在最坏的情况下,不可能获得更好的时间复杂度,因为可能有O(n^2)个这样的对。