Hash Table
Last updated
Last updated
ํค ๊ฐ์ ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ก ํ์ฐํด์ ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ ์๋ฃ์ด๋ค
Table์ ํฌ๊ธฐ๋ ์ ์ฒด ํค๋ค์ ์ซ์์ ๊ฐ์ต๋๋ค. ์ฌ์ฉํ์ง ์๋ ํค๋ ๋น์๋ก๋๋ค.
์ข ๋ฅ | ์ฐ์ฐ |
---|---|
SEARCH | Table[key] |
INSERT | Table[key] = value |
DELETE | Table[key] = |
์ ์ฒด ํค๋ฅผ ์์ธกํด์ผ ํ ์ด๋ธ ์ฌ์ด์ฆ๋ฅผ ์ ํ ์ ์์ต๋๋ค. ์ ์ฒด ํค ๋๋น ์ฌ์ฉํ๋ ํค๊ฐ ์ ๋ค๋ฉด ๋น์ค์ฉ์ ์ ๋๋ค
Key๋ฅผ ํด์ฌํ์ฌ ๋ฐฐ์ด์ ๋ฃ๊ณ ์ฌ์ฉํ๋ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค.
hash key | key |
---|---|
bc72337a7af5 ... | firstKey |
0b41b20f3772 ... | secondKey |
4c44f766cb3c ... | thirdKey |
ํด์ ํ ์ด๋ธ์ ํด์ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด ์ธ๋ฑ์ค์ ๋ฒ์๋ฅผ ์ค์ผ ์ ์๊ธฐ ๋๋ฌธ์ ์ ์ฒด ํ ์ด๋ธ์ ํฌ๊ธฐ๊ฐ ์ค์ด๋ญ๋๋ค
ํด์ ํ ์ด๋ธ ํฌ๊ธฐ๋ณด๋ค ํค์ ๊ฐ์๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ ๋ ๊ฐ์ ํค๊ฐ ๋์ผํ slot์ ํด์๋ ์ ์์ต๋๋ค. ์ด๊ฒ์ ํด์ ์ถฉ๋(hash collison)์ด๋ผ๊ณ ํฉ๋๋ค.
Direct address table์ ํค ๊ฐ์ ์ธ๋ฑ์ค๋ก ์ฌ์ฉํ๋ ๊ตฌ์กฐ์ด๊ธฐ ๋๋ฌธ์ ์ ์ฌ์จ์ด 1 ์ดํ์ด๋ฉฐ ์ ์ฌ์จ์ด 1 ์ด๊ณผ์ธ ํด์ ํ ์ด๋ธ์ ๊ฒฝ์ฐ๋ ๋ฐ๋์ ์ถฉ๋์ด ๋ฐ์ํ๊ฒ ๋ฉ๋๋ค.
ํด์ ํ ์ด๋ธ์ ํ ์ด๋ธ์ ํฌ๊ธฐ๊ฐ ํค์ ๊ฐ์๋ณด๋ค ์๊ธฐ ๋๋ฌธ์ ์ ์ฌ์จ์ด 1์ด ์ด๊ณผํฉ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํด์ ์ถฉ๋์ด ๋ฐ์ํ ์๋ฐ์ ์์ต๋๋ค.
๋ง์ฝ, ์ถฉ๋์ด ๋ฐ์ํ์ง ์๋๋ค๋ฉด ํ ์ด๋ธ์ ํ์, ์ฝ์ , ์ญ์ ์ฐ์ฐ์ ๋ชจ๋ O(1)์ ์ํ๋์ง๋ง ์ถฉ๋์ด ๋ฐ์ํ ๊ฒฝ์ฐ ์ถฉ๋์ ๋ํ ์ถ๊ฐ ์์ ์ด ํ์ํ๊ฒ ๋ฉ๋๋ค.
์ถฉ๋์ ํด์ ํ ์ด๋ธ ์ฐ์ฐ ํจ์จ์ ๋จ์ดํธ๋ฆฌ๊ธฐ ๋๋ฌธ์ ์ถฉ๋์ ์ค์ด๋ ๊ฒ์ด ํด์ ํ ์ด๋ธ์ ํต์ฌ์ ๋๋ค.
ํด์ ํจ์๋ฅผ ๊ฐ์ ํ์ฌ ์ถฉ๋์ ์ค์ผ ์ ์์ต๋๋ค.