Bit Vector Representations
Subsets of a finite set can be efficiently represented as bit vectors, in which a given bit position is a 1 if the corresponding item is an element of the subset. Representing a 128-element set takes only 4 32-bit words of memory.
Operations on sets can be done on whole words.
Set operation: | Bit vector operation: |
∈ | ∧ with vector for element |
or test bit | |
∩ | ∧ |
∪ | ∨ |
set complement of A | ¬ A |
set difference, A - B | A ∧ ¬ B |
Operations on the bit vector representation are O(n/32) , compared to O(n · m) with other methods.
Example: assign a bit for each program variable or subexpression.