๐ ํด์ํ ์ด๋ธ
์ ๋ ฌ์๊ณ ๋ฆฌ์ฆ์ ๋นํด ํ์์๊ณ ๋ฆฌ์ฆ์ ์์๋ก ํ์์ด ์งํ๋๋ค(ex. ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ ๋) ๋ฐ๋ผ์ ํ์ ์๊ณ ๋ฆฌ์ฆ์์ ํ์์ ์์๋๋ ์๊ฐ์ ๋จ์ถ์ํค๋ ๊ฒ์ ๊ต์ฅํ ์ค์ํ ์ด์์ด๋ค.
์์๊ฐ ์ ์ฅ๋ ์๋ฆฌ๊ฐ ์์์ ๊ฐ์ ์ํด ๋ฐ๋ก ๊ฒฐ์ ๋๋ ์๋ฃ๊ตฌ์กฐ → O(1) ์๊ฐ์ผ๋ก ๋งค์ฐ ๋น ๋ฅธ ์๋ต์ ์๊ตฌํ ๋ ์ฌ์ฉ๋๋ ๊ธฐ๋ฒ
cf. ํ์ ํธ๋ฆฌ์ ๊ฒฝ์ฐ ์์์ ๊ฐ์ ์ํด ์์น๊ฐ ๊ฒฐ์ ๋์ง๋ง ํธ๋ฆฌ๋ฅผ ํ์ํด ๋ด๋ ค๊ฐ๋ ์๊ฐ์ด ์์๋จ
์ต์๊ฐ, ํน์ ๊ฐ ๋ฐ๋ก ์ /ํ์ ๊ฐ ๋ฑ์ ์ฐพ์๋ผ ์ ์์ผ๋ฉฐ ๊ทธ๋ฅ ํน์ ๊ฐ์ ์์น๋ฅผ ์ฐพ์๋ด๊ธฐ๋ง ํ๋ 'ํ์'์ ๊ธฐ๋ฅ๋ง ํจ
ํด์ํ ์ด๋ธ์์๋ ํด์ํจ์ h(x) = (ax + b) mod p ๋ฅผ ์ด์ฉํด ์์๊ฐ ์ ์ฅ๋ ์์น๋ฅผ ๊ฒฐ์ ํจ
- h(x) = x mod 11
- ๊ฐ์ ๊ท ๋ฑํ๊ฒ ๋ฐฐ๋ถํ ์๋ก ์ข์ (๊ฒฝ์ฐ์ ๋ฐ๋ผ์๋ ๊ทธ๋ ์ง ์์ ์ ์์)
ํ์
- 16์ ํ์ํ๋ ค๋ฉด h(16) = 16 mod 11 = 5 ์ด๊ณ ํด๋น์นธ์ ๋ค์ด์์
- 27๋ฅผ ํ์ํ๋ ค๋ฉด h(27) = 27 mod 11 = 5 ์ด๊ณ ํด๋น์นธ์ ์์
- 27์ด๋ผ๋ ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ถ์ ๋ 16๊ณผ ์ถฉ๋์ด ๋ฐ์ํจ → ์ถฉ๋๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ ๊น?
์ถฉ๋
- ํด์์ฒด์ธ(hash chain) - ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ฅผ ์ด์ฉํด ํ ์ธ๋ฑ์ค์ ์ฌ๋ฌ๊ฐ์ key๋ฅผ ์ฐ๊ฒฐํด ์ ์ฅํ๋ค
- ์ ํ์กฐ์ฌ : ์ถฉ๋๋ ์ธ๋ฑ์ค์์ ์์ํด ๋น์นธ์ด ๋์ฌ๋๊น์ง ๋ค์ ์นธ์ผ๋ก ์ด๋ํด ์ ์ฅํ๊ณ ํ์ํ๋ค
- ์ผ์ฐจ๊ตฐ์ง : ํน์ ์์ญ์ ์์๋ค์ด ๋ชฐ๋ ค ํด์์ ํจ์จ์ด ๋ฎ์์ง๋ ๋ฌธ์ (= ํด๋ฌ์คํฐ๋ง = ์ ๋ฆผํ์)
- ์ด์ฐจ์์กฐ์ฌ : ๋ฐ๋ก ๋ค์ ์นธ์ด ์๋ i^2 ์นธ์ผ๋ก ์ด๋ํด ์ ์ฅํ๊ณ ํ์ํ๋ค (์ผ์ฐจ๊ตฐ์ง ๋ฌธ์ ๋ฅผ ํด๊ฒฐ ← ๋ถ์ฐ์ํด)
- ์ด์ฐจ๊ตฐ์ง : x1=x2 ๋ผ๋ฉด h(x1)=h(x2)์ด๋ฏ๋ก ์ด์จ๊ฑฐ๋ ๊ณ์ ์ถฉ๋์ด ๋ฐ์ํจ
- ์ด์คํด์ฑ : ์ผ/์ด์ฐจ๊ตฐ์ง ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ ๋ค๋ฅธ ํจ์๋ฅผ ์ด์ฉํ๋ค (์์ ๋ค๋ฅธ ์ถฉ๋ ์ ์ฌ์ฉํ๋ ํด์ํจ์) = ๋ฆฌํด์ฑ ๋ฐฉ๋ฒ
์ญ์
- ๋จ์ํ ๋น์นธ(NULL)์ด ์๋๋ผ DELETED ๋งํฌ๋ฅผ ํ์ํด๋ (์ ํ์กฐ์ฌํ ์์์ ํ์์ด ๊ฐ๋ฅํด์ผํ๋ฏ๋ก)
๊ฒ์์๊ฐ
O(logn)์ ๊ฐ์ง๋ ๋ฐฐ์ด์ด๋ O(logn)์ ์ด์งํ์ํธ๋ฆฌ๋ ์ต์ ์ ๊ฒฝ์ฐ O(n)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค. ํด์ํ ์ด๋ธ์ ์ฌ์ฉํ๋ฉด ํ๊ท ์ ์ผ๋ก O(1) ์๊ฐ์ ํ์์ด ๊ฐ๋ฅํ๋ค. ๋ง์ฝ ํด์ ์ฒด์ธ๊ธฐ๋ฒ์ ์ฌ์ฉํด ํ ์ธ๋ฑ์ค์ ์ฌ๋ฌ๊ฐ์ ํค๋ฅผ ์ ์ฅํ๋ ๊ฒฝ์ฐ, ํ๊ท ์ ์ผ๋ก ํ ์ธ๋ฑ์ค๋น k๋งํผ์ ์์๊ฐ ํฌํจ๋๋ค๋ฉด ํ๊ท ๊ฒ์์๊ฐ์ 1 + k ๊ฐ ๋ ๊ฒ์ด๋ค. O(1+k) ์๊ฐ์ ๊ฐ์ง ๊ฒ.
์ด๋ k > 0.5 ๋ผ๋ฉด ์ผ์ฐจ๊ตฐ์ง ๋ฐ์ ํ๋ฅ ์ด ๋์์ง๋๋ฐ ์ด๋ ๋น๋๊ธฐ์ง ์๋ฆฌ ๋๋ฌธ์ด๋ค. ์ด ๊ฒฝ์ฐ ํด์ํ ์ด๋ธ์ ํฌ๊ธฐ๋ฅผ 2๋ฐฐ๋ก ๋๋ฆฌ๊ณ ์๋ก์ด ํด์ํจ์๋ฅผ ๋ง๋ ๋ค. ๊ต์๋์ด ์ฌ๊ธฐ์ ๋ถํ ์๊ฐ๊ธฐ๋ฒ์ ๋ ผ์ํ ๋ ๋ค์ ์ธ๊ธํ๋ค๊ณ ํ์ จ๋๋ฐ..
๊ทธ๋์ ๋ถํ ์๊ฐ๊ธฐ๋ฒ์ ๋ํด ์์ฃผ ์ด์ง ๊ณต๋ถํด๋ดค๋ค. ๋ด์ฉ์ ์ฌ๊ธฐ์