O(log n)中的c ++ bitset逻辑运算?

c++ bitset logical operations in O(log n)?

根据此 post Performance of doing bitwise operations on bitsets 性能是 O(n) 我如何使它成为 O(log n)。 谢谢。

答案是你不知道。

假设您有一个 n 大小的位集。 让我们看看异或运算符^。 它显然必须查看两个操作数中的每一位,因此它进行 2n 查找。 这导致 O(n).

的复杂性

您可以使用汇编指令,例如一次做32位,所以操作数是(n+31)/32,但这并没有改变复杂度是O(n)。在计算 n 的所有复杂度后,趋向于无穷大并且忽略常数因子。