Abh*_*jit 5 java bit time-complexity bitset
我有一个场景,我必须将 BitSet 索引的范围设置为 1。所以如果我使用
/*
*Code snippet
*/
BitSet myBitSet = new BitSet(100);
myBitSet.set(10, 50);
//**************************
Run Code Online (Sandbox Code Playgroud)
上面代码的时间复杂度是多少?它会遍历 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);