Hash Function
Last updated
Last updated
์์์ ๊ธธ์ด์ ํค๊ฐ์ ๊ณ ์ ๋ ๊ธธ์ด์ ํด์๋ก ๋ณํํด์ฃผ๋ ๋งตํ ํจ์์ ๋๋ค.
๋๋์ ๋ฐฉ๋ฒ(Division method)์ ๋๋จธ์ง ์ฐ์ฐ์ ์ด์ฉํ์ฌ ํด์๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๊ฒ์ํค k๋ฅผ ํด์ ํ ์ด๋ธ์ ํฌ๊ธฐ m์ผ๋ก ๋๋ ๋๋จธ์ง๋ฅผ ํด์๋ก ์ฌ์ฉํฉ๋๋ค.
h(k) = k mod m (k: key, m: table size)
Target = 2^n ์ ํผํ๋ค
Target = 2^n ๊ฐ ๋๋ฉด ํด์ ํจ์ h(k)๋ ํค k์ ํ์ p๋นํธ๊ฐ ๋ฉ๋๋ค.
ํด์ฌ ํจ์๊ฐ key๊ฐ ์ ์ฒด์ ๋ฐ๋ผ ๋ฐ๋์ง ์๊ณ ํ์ p ๋นํธ์๋ง ์ํฅ์ ๋ฐ์ต๋๋ค. ํ์ n๋นํธ๊ฐ ๊ณ ๋ฅด๊ฒ ๋์จ๋ค๋ฉด ๊ด์ฐฎ๊ฒ ์ง๋ง ๋๋ถ๋ถ ๊ทธ๋ ์ง ์๊ธฐ ๋๋ฌธ์, Target = 2^n ์ธ ๊ฒฝ์ฐ๋ ํผํด์ผ ํฉ๋๋ค.
Target = 2^n ๋๋ฌด ๊ฐ๊น์ง ์์ ์์๋ฅผ ์ ํํฉ๋๋ค.
ํค์ ์๊ฐ 20์ธ ๊ฒฝ์ฐ ํ ์ด๋ธ ํฌ๊ธฐ(m)๋ 17๋ก ํ๋ ๊ฒ ์ข์ต๋๋ค.
ํด์ ํ ์ด๋ธ ํฌ๊ธฐ์ ์๋ฆฟ์๋ก ํค๋ฅผ ๋ถํดํ๋ค. ๋ถํด๋ ํค๋ค์ ๋ํ๋ค. ๋ํ ๊ฐ์ด ํ ์ด๋ธ ํฌ๊ธฐ๋ฅผ ์ด๊ณผํ๋ค๋ฉด ์ด๊ณผํ ์๋ฆฟ์๋ ๋ฒ๋ฆฐ๋ค.
ํด์ํ ์ด๋ธ ํฌ๊ธฐ์ ์๋ฆฟ์๋ก ํค๋ฅผ ๋ถํดํ๋ค. ๋๋์ด์ง ๊ฐ ๋ถ๋ถ์ ๊ฒฝ๊ณ ๋ถ๋ถ ๊ฐ์ ์ญ์ผ๋ก ์ ๋ ฌํ๋ค. ๋ถํด๋ ํค๋ค์ ๋ํ๋ค. ๋ํ ๊ฐ์ด ํ ์ด๋ธ ์๋ฆฟ์๋ฅผ ์ด๊ณผํ๋ค๋ฉด ์ด๊ณผํ ์๋ฆฟ์๋ ๋ฒ๋ฆฐ๋ค.
ํค ๊ฐ์ ์ ๊ณฑํ ํ ๊ฒฐ๊ณผ ๊ฐ์ ์ค๊ฐ ๋ถ๋ถ์ ์๋ ๋ช ๋นํธ๋ง ์ ํํ์ฌ ํด์๋ก ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ํ ์ด๋ธ ํฌ๊ธฐ์ ์๋ฆฟ์๋งํผ ์ค๊ฐ๊ฐ์ ๊ฐ์ ธ์ต๋๋ค.