因此位数组和散列表似乎不具备查找 - 最大类型操作,但有很多方法可以解决它。在某些情况下,我想知道是否有一种方法可以单独使用位数组而无需额外的变量,指针或操纵数组的开始/结束。例如......
我有整数{1,...,n}和一个n位的数组。为了保留整数的子集,我使用整数本身作为位数组中的键,如果它在子集中则将该位设置为1,否则设置为0。
例如对于整数{1,2,3,4}和子集{1,3),位数组看起来像{1,0,1,0}。
似乎没有办法做到这一点,如果没有以某种方式移动位,这导致我相信O(1)梦想已经死亡,也许位阵列将无法工作。在O(log n)中是否可以这样?
由于
答案 0 :(得分:0)
在长度为n的位数组上找到最高设置位是O(n)。如果您需要更好,那么您需要选择其他数据结构,或者在位图上保留高水位线。