Li recentemente que é possível ter matrizes que não precisam ser inicializadas, ou seja, é possível usá-las sem ter que gastar algum tempo tentando definir cada membro com o valor padrão. ou seja, você pode começar a usar a matriz como se ela tivesse sido inicializada pelo valor padrão sem precisar inicializá-la. (Desculpe, não me lembro onde li isso).
Por exemplo, por que isso pode ser surpreendente:
Digamos que você está tentando modelar um pior caso hashtable (para cada um insert / pesquisa de exclusão /) de inteiros no intervalo .[ 1 , n 2 ]
Você pode alocar uma matriz de tamanho bits e usar bits individuais para representar a existência de um número inteiro na hashtable. Nota: alocar memória é considerado tempo O ( 1 ) .
Agora, se você não precisou inicializar essa matriz, qualquer sequência das operações say nesta hashtable é agora o pior caso O ( n ) .
Portanto, você tem uma implementação de hash "perfeita", que para uma sequência de operações usa Θ ( n 2 ) de espaço, mas é executada em O ( n ) tempo!
Normalmente, espera-se que seu tempo de execução seja pelo menos tão ruim quanto o uso de espaço!
Nota: O exemplo acima pode ser usado para uma implementação de um conjunto esparso ou matriz esparsa, portanto, não é apenas de interesse teórico, suponho.
Então a questão é:
Como é possível ter uma matriz como estrutura de dados que nos permita pular a etapa de inicialização?