我有一个场景,我必须将 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/