java - Java中BitSet的Set操作的时间复杂度是多少?

标签 java time-complexity bit bitset

我有一个场景,我必须将 BitSet 索引的范围设置为 1。
所以如果我使用

   /*
    *Code snippet
    */
    BitSet myBitSet = new BitSet(100);
    myBitSet.set(10, 50);

    //**************************

上述代码的时间复杂度是多少?它会遍历 40 个元素还是会执行某种位操作?

最佳答案

对于单个位,它将是 O(1),设置 n 位的复杂度是 O(N)。

对于怀疑论者:设置 n 位是 O(N),因为设置 10_000 位比设置 1_000 位花费大约 10 倍的时间。

也就是说,调用 myBitSet.set(10,50) 会更有效。比写 for (int i=10; i<=50; i++) myBitSet.set(i);

关于java - Java中BitSet的Set操作的时间复杂度是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35644746/

相关文章:

java - Runtime.getRuntime().exec() 不起作用

java - 如果有强大的测试用例,这个问题的解决方案是什么?

谁能解释一下这个简短的 C 操作的输出吗?

java - 使用异或平衡括号

java - 如何在 android studio 中以编程方式取消订阅 OneSignal

java - Web 应用程序似乎启动了一个名为的线程,但未能停止它。这很可能造成内存泄漏

java - 使用内部类的多个 Jbutton 和 ActionListener

algorithm - 是否有用于查找复杂多边形凸包的线性时间算法?

Javascript:通过对象搜索的运行时间?

c - 如何将 4 个 uint32_t int 组合成一个完整的 128 位 int 并返回