Hash Function

์ž„์˜์˜ ๊ธธ์ด์˜ ํ‚ค๊ฐ’์„ ๊ณ ์ •๋œ ๊ธธ์ด์˜ ํ•ด์‹œ๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ๋งตํ•‘ ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.

Key 
- ์ž์—ฐ์ˆ˜๋กœ ๊ฐ€์ • ( ๋งŒ์•ฝ ์ž์—ฐ์ˆ˜๊ฐ€ ์•„๋‹Œ character๋‚˜ string์˜ ํ˜•ํƒœ๋ผ๋ฉด ์ž์—ฐ์ˆ˜ ํ˜•ํƒœ๋กœ ๋ณ€ํ˜•ํ•˜์—ฌ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. )

Hash
- ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์ž‘์•„์ง„ ๊ฐ’์„ ํ•ด์‹œ(hash), ํ•ด์‹œ ๊ฐ’(hash value), ํ•ด์‹œ ์ฝ”๋“œ(hash code)๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
- ํ•ด์‹œ ํ…Œ์ด๋ธ”์˜ ๋ฒ„ํ‚ท์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฃผ์†Œ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

Hasing
- ํ‚ค ๊ฐ’์„ ํ•ด์‹œํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ํ•ด์‹œ๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ์ž‘์—…์„ ํ•ด์‹ฑ(Hasing)์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

Hashing ๋ฐฉ๋ฒ•

๋‚˜๋ˆ—์…ˆ ๋ฐฉ์‹

๋‚˜๋ˆ—์…ˆ ๋ฐฉ๋ฒ•(Division method)์€ ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์„ ์ด์šฉํ•˜์—ฌ ํ•ด์‹œ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰ํ‚ค k๋ฅผ ํ•ด์‹œ ํ…Œ์ด๋ธ”์˜ ํฌ๊ธฐ m์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ํ•ด์‹œ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

h(k) = k mod m (k: key, m: table size)

  1. Target = 2^n ์„ ํ”ผํ•œ๋‹ค

Target = 2^n ๊ฐ€ ๋˜๋ฉด ํ•ด์‹œ ํ•จ์ˆ˜ h(k)๋Š” ํ‚ค k์˜ ํ•˜์œ„ p๋น„ํŠธ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

ํ•ด์‰ฌ ํ•จ์ˆ˜๊ฐ€ key๊ฐ’ ์ „์ฒด์— ๋”ฐ๋ผ ๋ฐ”๋€Œ์ง€ ์•Š๊ณ  ํ•˜์œ„ p ๋น„ํŠธ์—๋งŒ ์˜ํ–ฅ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. ํ•˜์œ„ n๋น„ํŠธ๊ฐ€ ๊ณ ๋ฅด๊ฒŒ ๋‚˜์˜จ๋‹ค๋ฉด ๊ดœ์ฐฎ๊ฒ ์ง€๋งŒ ๋Œ€๋ถ€๋ถ„ ๊ทธ๋ ‡์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, Target = 2^n ์ธ ๊ฒฝ์šฐ๋Š” ํ”ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. Target = 2^n ๋„ˆ๋ฌด ๊ฐ€๊น์ง€ ์•Š์€ ์†Œ์ˆ˜๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

ํ‚ค์˜ ์ˆ˜๊ฐ€ 20์ธ ๊ฒฝ์šฐ ํ…Œ์ด๋ธ” ํฌ๊ธฐ(m)๋Š” 17๋กœ ํ•˜๋Š” ๊ฒŒ ์ข‹์Šต๋‹ˆ๋‹ค.

์ด๋™ ์ ‘๊ธฐ

ํ•ด์‹œ ํ…Œ์ด๋ธ” ํฌ๊ธฐ์˜ ์ž๋ฆฟ์ˆ˜๋กœ ํ‚ค๋ฅผ ๋ถ„ํ•ดํ•œ๋‹ค. ๋ถ„ํ•ด๋œ ํ‚ค๋“ค์„ ๋”ํ•œ๋‹ค. ๋”ํ•œ ๊ฐ’์ด ํ…Œ์ด๋ธ” ํฌ๊ธฐ๋ฅผ ์ดˆ๊ณผํ•œ๋‹ค๋ฉด ์ดˆ๊ณผํ•œ ์ž๋ฆฟ์ˆ˜๋Š” ๋ฒ„๋ฆฐ๋‹ค.

๊ฒฝ๊ณ„ ์ ‘๊ธฐ

ํ•ด์‹œํ…Œ์ด๋ธ” ํฌ๊ธฐ์˜ ์ž๋ฆฟ์ˆ˜๋กœ ํ‚ค๋ฅผ ๋ถ„ํ•ดํ•œ๋‹ค. ๋‚˜๋ˆ„์–ด์ง„ ๊ฐ ๋ถ€๋ถ„์˜ ๊ฒฝ๊ณ„ ๋ถ€๋ถ„ ๊ฐ’์„ ์—ญ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค. ๋ถ„ํ•ด๋œ ํ‚ค๋“ค์„ ๋”ํ•œ๋‹ค. ๋”ํ•œ ๊ฐ’์ด ํ…Œ์ด๋ธ” ์ž๋ฆฟ์ˆ˜๋ฅผ ์ดˆ๊ณผํ•œ๋‹ค๋ฉด ์ดˆ๊ณผํ•œ ์ž๋ฆฟ์ˆ˜๋Š” ๋ฒ„๋ฆฐ๋‹ค.

์ค‘๊ฐ„ ์ œ๊ณฑ๋ฒ•

ํ‚ค ๊ฐ’์„ ์ œ๊ณฑํ•œ ํ›„ ๊ฒฐ๊ณผ ๊ฐ’์˜ ์ค‘๊ฐ„ ๋ถ€๋ถ„์— ์žˆ๋Š” ๋ช‡ ๋น„ํŠธ๋งŒ ์„ ํƒํ•˜์—ฌ ํ•ด์‹œ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ํ…Œ์ด๋ธ” ํฌ๊ธฐ์˜ ์ž๋ฆฟ์ˆ˜๋งŒํผ ์ค‘๊ฐ„๊ฐ’์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

Last updated