티스토리 뷰
Hash에서 특정 key에 대한 value를 확인할 때 걸리는 시간 복잡도가 O(1) - Constant time 이라는 것에 대한 이해가 되지 않아 확인해보니 실제로는 O(1)보다는 오래 걸리지만 거의 그 즈음 걸리기에 O(1)으로 표기한다는 것을 알았다. 내가 잘못 이해하고 있었던 부분은 Search와 Index(Access)의 차이다.
Search는 한 자료 구조(Data Structure) 안에서 특정 요소(element)를 검색하는 것을 의미하는 반면,
Index(Access)는 이미 어디 있는지 알고 이를 접근한다는 차이를 가지고 이해를 해야했다.
List의 경우에도 Index를 알고 있다면 바로 접근이 가능 하기에 O(1)의 시간 복잡도를 갖지만, 특정 데이터(data)를 검색한다는 것은 List를 순회(Traverse)하며 일일이 찾아야 하기에 경우에 따라 O(n) 혹은 O(log n)의 시간 복잡도를 갖는 것이고, Hash는 Key와 Value라는 특성이 있기에 실제 Key에 대한 접근은 O(1) 이상의 시간이 걸리지만 Key만 접근하면 바로 Value를 반환(return)할 수 있기에 O(1)의 시간 복잡도를 갖는 것이다.
참고
- https://stackoverflow.com/questions/4363539/how-does-hashing-have-an-o1-search-time
- https://www.quora.com/Why-does-a-hash-table-have-O-1-search
'기술(Tech, IT) > etc.' 카테고리의 다른 글
[Tech, etc.] Vanilla Software(바닐라 소프트웨어, Vanilla Python) (0) | 2023.02.01 |
---|---|
[Tech, etc.] Iterator Design Pattern(반복자 패턴) (0) | 2022.11.24 |
[Tech, etc.] Git Fork vs Mirroring (0) | 2022.11.20 |
[Tech, etc.] Heapify(힙 생성) (0) | 2022.10.14 |
[Tech, etc.] Minimum Spanning Tree(MST, 최소 신장 트리) (0) | 2022.10.09 |
- Total
- Today
- Yesterday
- 파이썬
- I2C
- 투 포인터
- Computer Graphics
- join
- java
- 이코노미스트
- socket programming
- DICTIONARY
- 안드로이드
- The Economist
- C++
- 소켓 프로그래밍
- 이코노미스트 에스프레소
- tf-idf
- ml
- min heap
- 딕셔너리
- 리트코드
- defaultdict
- Android
- 티스토리챌린지
- The Economist Espresso
- Python
- leetcode
- Hash Map
- machine learning
- vertex shader
- 오블완
- 머신 러닝
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |