Un truco bien conocido para almacenar vectores de bits utilizando memoria no inicializada puede asignar un vector de bits de tamaño en el que todos los bits se ponen a asignando bits de memoria e inicializando solo de ellos. Esta representación admite la configuración y el desarmado de cualquier bit en tiempo constante.
Esto se remonta a "Alfred Aho, John Hopcroft y el libro de 1974 de Jeffrey Ullman El diseño y análisis de algoritmos informáticos ... Capítulo 2, ejercicio 2.12", "Libro de 1986 de Jon Bentley Programming Pearls... Columna 1, ejercicio 8; ejercicio 9 en la segunda edición ", y " el documento de 1993 de Preston Briggs y Linda Torczon, 'Una representación eficiente para conjuntos dispersos' " .
El "Cambio de base sin perder espacio" de Dodis et al. ligeramente el requisito de espacio a bits, aunque este algoritmo requiere la precomputación de constantes con bits cada una.
¿Cuánto espacio se puede ahorrar? ¿Hay una representación de vectores de bits en los que
- Los bits se pueden activar o desactivar en tiempo
- La inicialización de un nuevo vector de bits de s utiliza bits de memoria no inicializada y memoria inicializada