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

标签 c++11 time-complexity bitwise-operators std-bitset

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

最佳答案

答案是你不知道。

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

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

关于c++11 - O(log n)中的c++ bitset逻辑运算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44520123/

相关文章:

c++ - 组合的基于范围的 for 循环

c++ - 如何将模式从Dev-C++中的c++ 98模式更改为支持C++ 0x(基于范围)的模式?

performance - 将所有奇数定位的元素原地移动到左半部分,偶数定位到右半部分

c - 评估 C 二元运算

c - 按位运算给出不正确的结果

c++ - 如何在不调用析构函数的情况下重新分配 vector ?

python - 如何提高游戏物理的嵌套 for 循环的速度

java - 反转链表

python - 从十六进制字符串中提取各个位值的有效方法

c++ - std::promise<void> 抛出未知错误,除非调用 sleep