최근에 초기화 할 필요가없는 배열을 가질 수 있다는 것을 읽었습니다. 즉, 각 구성원을 기본값으로 설정하려고 할 때 시간을 소비하지 않고도 배열을 사용할 수 있습니다. 즉, 배열을 초기화하지 않고 기본값으로 초기화 된 것처럼 배열을 사용할 수 있습니다. (죄송합니다, 나는 이것을 어디서 읽었는지 기억하지 못합니다).
예를 들어 왜 이것이 놀라운 지에 대해 :
범위에서 정수 의 최악의 경우 해시 테이블 (각 삽입 / 삭제 / 검색에 대해 을 모델링하려고한다고 가정하십시오 .[ 1 , N 2 ]
비트 크기의 배열을 할당하고 개별 비트를 사용하여 해시 테이블에 정수의 존재를 나타낼 수 있습니다. 참고 : 메모리 할당은 시간으로 간주 됩니다.O ( 1 )
이제이 배열을 전혀 초기화하지 않아도된다면, 이 해시 테이블에 대한 연산 시퀀스는 최악의 경우 입니다.O ( N )
따라서, 당신은 "완벽한"해시 구현을 가지는데, 그것은 연산 시퀀스에 공간을 사용하지만 시간에 실행됩니다!
일반적으로 런타임은 최소한 공간 사용량만큼 나빠질 것으로 예상합니다!
참고 : 위의 예는 희소 세트 또는 희소 행렬의 구현에 사용될 수 있으므로 이론적으로 관심이있는 것은 아닙니다.
따라서 질문은 다음과 같습니다.
초기화 단계를 건너 뛸 수있는 데이터 구조와 같은 배열을 어떻게 가질 수 있습니까?