문제 해결 능력 기르기알고리즘 연습 Level 1중복되는 항목 찾기 I

Q

딕셔너리 key in dic.keys()의 시간복잡도 또한 O(1)인가요?

조회 3361

좋아요 1

2019년 9월 19일




A
1개의 답변이 있어요



2019년 9월 19일

댓글 1

2019년 9월 20일
List와 달리 Dictionary는 내부적으로 hash를 통해서 자료들을 저장하기 때문에 시간복잡도가 O(1)이 가능한걸로 알고 있습니다. Dictionary는 배열로 미리 Hash Table 사이즈만큼 생성 후에 사용하기 때문에 공간과 탐색 시간을 맞바꾸는 기법이라고 할 수 있겠네요. Key를 hashing 함수로 연산해서, hash 주소를 알아내고, 이를 기반으로 해쉬 테이블에서 해당 Key에 대한 데이터 위치를 알아내기 때문에 모든 키를 탐색할 필요가 없는거죠! 어설프지만 이런 이유라고 알고 있습니다 :)

(주) 코드잇

대표강영훈

개인정보보호책임자강영훈

이메일support@codeit.kr

사업자 번호313-86-00797

통신판매업제 2019-서울중구-1034 호

주소서울특별시 중구 청계천로 100 시그니쳐타워 동관 10층 코드잇