Hace poco leí que es posible tener matrices que no necesitan inicializarse, es decir, es posible usarlas sin tener que perder tiempo tratando de establecer cada miembro en el valor predeterminado. es decir, puede comenzar a usar la matriz como si se hubiera inicializado por el valor predeterminado sin tener que inicializarla. (Lo siento, no recuerdo dónde leí esto).
Por ejemplo, por qué eso puede ser sorprendente:
Supongamos que está intentando modelar una tabla hash del peor caso (para cada inserción / eliminación / búsqueda) de enteros en el rango .
Puede asignar una matriz de tamaño bits y usar bits individuales para representar la existencia de un número entero en la tabla hash. Nota: la asignación de memoria se considera tiempo .
Ahora, si no tuvo que inicializar esta matriz en absoluto, cualquier secuencia de decir operaciones en esta tabla hash ahora es el peor de los casos .
En efecto, tiene una implementación hash "perfecta", que para una secuencia de operaciones utiliza el espacio , ¡pero se ejecuta en tiempo !Θ ( n 2 ) O ( n )
¡Normalmente uno esperaría que su tiempo de ejecución sea al menos tan malo como su uso de espacio!
Nota: El ejemplo anterior podría usarse para una implementación de un conjunto disperso o una matriz dispersa, por lo que no solo es de interés teórico, supongo.
Entonces la pregunta es:
¿Cómo es posible tener una matriz como estructura de datos que nos permite omitir el paso de inicialización?