ํฐ์คํ ๋ฆฌ ๋ทฐ
ํด์๋?
- Hash ํน์ HashTable์ ํค๋ฅผ ๊ฐ์ ๋งคํํ ์ ์๋ ๊ตฌ์กฐ์ธ, ๋ด๋ถ์ ์ผ๋ก ๋ฐฐ์ด์ ์ฌ์ฉํ๋ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค.
- ์์์ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง ๋ฐ์ดํฐ(Key)๋ฅผ ๊ณ ์ ๋ ํฌ๊ธฐ์ ๋ฐ์ดํฐ(Value)๋ก ๋ณํ์์ผ ์ ์ฅ
- ํค์ ๋ํ ํด์๊ฐ์ ์ฌ์ฉํ์ฌ ๊ฐ์ ์ ์ฅํ๊ณ ํค-๊ฐ ์์ ๊ฐฏ์์ ๋ฐ๋ผ ๋์ ์ผ๋ก ํฌ๊ธฐ๊ฐ ์ฆ๊ฐํ๋ associate array
- ํค์ ๋ํ ํด์๊ฐ์ ๊ตฌํ๋ ๊ณผ์ ์ hashing(ํด์ฑ)์ด๋ผ ํ๊ณ , ์ด๋ ์ฌ์ฉํ๋ ํจ์๋ฅผ ํด์ํจ์
- ํด์๊ฐ ์์ฒด๋ฅผ index๋ก ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ํ๊ท ๋ณต์ก๋๊ฐ O(1)๋ก ๋งค์ฐ ๋น ๋ฅด๋ค
- ๋ณด์์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋ฉ๋๋ค.
ํด์ ํจ์๋?
- ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด, ์์์ ๊ธธ์ด์ ๋ฐ์ดํฐ๋ฅผ ์ํ์ ์ฐ์ฐ์ ํตํด ๊ณ ์ ๋ ๊ธธ์ด์ ํ ์ดํฐ๋ก ๋งคํํ๋ ํจ์๋ก, ํด์ ํจ์์ ์ํด ์ป์ด์ง๋ ๊ฐ์ ํด์์ฝ๋, ํด์๋ผ ํฉ๋๋ค.
ํด์ ํ ์ด๋ธ
- ํค์ ๊ฐ์ ๋งคํํด๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋๋ค.
- ํด์ํจ์๋ก ์ป์ ํดํค๋ฅผ ํค๋ก ํ์ฉํ์ฌ index๋ก ์ฌ์ฉํ๊ณ , ํด๋น index์ ๋ฐ์ดํฐ๋ฅผ ์ ์ ํ์ฌ ํจ์จ์ ์ธ ๊ฒ์์ ์ํด ์ฌ์ฉ๋ฉ๋๋ค.
- ๋๊ธฐํ๋ฅผ ์ง์
- Key, value์ Null๊ฐ์ ํ์ฉํ์ง ์์
- ์ ์ ์์์ผ๋ก ๋ง์ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌ
- ํ๋ ๋์คํฌ๋ ํด๋ผ์ฐ๋์ ์กด์ฌํ๋ ๋ฌดํํ ๋ฐ์ดํฐ๋์ ์ ํํ ๊ฐ์์ ํด์๊ฐ์ผ๋ก ๋งคํํ์ฌ ์์ ๋ฉ๋ชจ๋ฆฌ๋ก๋ ํ๋ก์ธ์ค ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅ
ํด์์ ์ถฉ๋ (Collision ํ์)
- ๋ฐ์ดํฐ๊ฐ ๋ง์์ง๋ฉด, ๋ค๋ฅธ ๋ฐ์ดํฐ๊ฐ ๊ฐ์ ํด์ ๊ฐ์ ๊ฐ์ง๊ฒ ๋์ด ์ถฉ๋์ด ๋ฐ์ํ๊ธฐ๋ ํฉ๋๋ค.
: ํด์ ํ ์ด๋ธ์ ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ ๋ ๊ฒฐ๊ตญ index์ ์ถฉ๋
์ถฉ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ
1. Separate Chaining
- Key์ ๋ํ index๊ฐ ๊ฐ๋ฅดํค๋ ์๋ฃ๊ตฌ์กฐ๋ฅผ LinkedList๋ฅผ ์ด์ฉํ๋ ๋ฐฉ์
- index๋ก ์ธํด ์ถฉ๋์ด ๋ฐ์ํ๋ฉด ๊ทธ index๊ฐ ๊ฐ๋ฅดํค๋ LinkedList์ ๋ ธ๋๋ฅผ ์ถ๊ฐ
** JDK 1.8์ ๊ฒฝ์ฐ์ index ๋ ธ๋๊ฐ 8์ดํ๋ฉด LinkedList, ์ด๊ณผํ๋ฉด ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ์ ์ฅํ์ฌ ํ์ ์ฑ๋ฅ์ ๊ฐ์
2. Open Addressing (๊ฐ๋ฐฉ์ฃผ์๋ฒ)
- ํด์ ์ถฉ๋์ด ์ผ์ด๋๋ฉด ๋ค๋ฅธ ์ ์ฅ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ๋ ๋ฐฉ์
1) ์ ํ ํ์ : ํด์์ถฉ๋์ ๋ค์ ๋ฒ์ผ, ํน์ ๋ช ๊ฐ๋ฅผ ๊ฑด๋๋ฐ์ด ๋ฐ์ดํฐ๋ฅผ ์ฝ์
2) ์ ๊ณฑ ํ์ : ํด์์ถฉ๋ ์ ์ ๊ณฑ๋งํผ ๊ฑด๋๋ด ๋ฒ์ผ์ ๋ฐ์ดํฐ ์ฝ์
3) ์ด์ค ํด์ : ํด์์ถฉ๋ ์ ๋ค๋ฅธ ํด์ํจ์๋ฅผ ํ ๋ฒ ๋ ์ ์ฉํ ๊ฒฐ๊ณผ๋ฅผ ์ด์ฉ
- ์ฒด์ด๋์ฒ๋ผ ํฌ์ธํฐ๊ฐ ํ์์๊ณ , ์ ์ฅํ ๋ฉ๋ชจ๋ฆฌ ์ธ ์ถ๊ฐ์ ์ธ ์ ์ฅ๊ณต๊ฐ๋ ํ์์์
- ์ฝ์ , ์ญ์ ์ ์ค๋ฒํค๋๊ฐ ์ ์
- ์ ์ฅํ ๋ฐ์ดํฐ๊ฐ ์ ์ ๋ ๋ ์ ๋ฆฌํจ
** ์ค์ ํด์ํจ์๊ฐ ๋ณด์์ ์ฌ์ฉ๋๋ ์์์ธ HMAC SHA-256
http://sunphiz.me/wp/archives/1104
[์ฐธ๊ณ ]
https://power-overwhelming.tistory.com/42
https://ablue-1.tistory.com/68
'CS > Data Structure' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๋ฃ๊ตฌ์กฐ] Arrays vs LinkedList (0) | 2022.03.28 |
---|
- Total
- Today
- Yesterday
- ์ด์์ฒด์
- ์นด์นด์ค ์ธํด
- http
- ๋์์ธ ํจํด
- ํ๋ก๊ทธ๋๋จธ์ค
- ์ ์ญ ๋ณ์
- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ
- ์๋ฐ์คํฌ๋ฆฝํธ
- ์๋ฐ
- ์ด๋ถํ์
- ํ๋กํ ์ฝ
- ํ๋กํผํฐ
- TDD
- ๋ฐฑ์ค javascript
- 2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด
- JavaScript
- ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ deep dive
- ์ฝ๋ฉํ ์คํธ
- ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ
- fp
- map
- git
- ๋คํธ์ํฌ
- ๋ฐฑ์ค node.js
- ๋ฐฑ์ค
- ์๊ณ ๋ฆฌ์ฆ
- ํฌํฌ์ธํฐ
- ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ
- ๋ ์์ปฌ ํ๊ฒฝ
- Baekjoon
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |