๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ–ฅ Computer Science/Data Structure

[Data Structure] ํ•ด์‰ฌ ํ…Œ์ด๋ธ”(Hash Table)์ด๋ž€? (feat. ์ด๋ก )

by Fomagran ๐Ÿ’ป 2021. 11. 15.
728x90
๋ฐ˜์‘ํ˜•

 

์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ’ป  ์ž…๋‹ˆ๋‹ค!

์˜ค๋Š˜์€ ์šฐ๋ฆฌ๊ฐ€ ์•„์ฃผ ํ”ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ํ•ด์‰ฌ ํ…Œ์ด๋ธ”, Swift๋กœ ๋งํ•˜๋ฉด ๋”•์…”๋„ˆ๋ฆฌ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณผ ๊ฑฐ์—์š”!

 

์ด๋ฏธ ๊ตฌํ˜„๋˜์–ด ์žˆ๋Š” ์ฝ”๋“œ๋กœ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๋ ค๊ณ  ํ•˜๋‹ˆ ์ง„์งœ ๋ณต์žกํ•˜๋”๋ผ๊ตฌ์š”.

 

๊ทธ๋ž˜์„œ ์˜ค๋Š˜์€ ํ•ด์‰ฌ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค!

 

๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~


ํ•ด์‰ฌ ํ…Œ์ด๋ธ”(Hash Table)์ด๋ž€?

 

์ •์˜๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

ํ•ด์‹œ ํ…Œ์ด๋ธ”์€ ์ปดํ“จํŒ…์—์„œ ํ‚ค๋ฅผ ๊ฐ’์— ๋งคํ•‘ํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ์ธ, ์—ฐ๊ด€ ๋ฐฐ์—ด ์ถ”๊ฐ€์— ์‚ฌ์šฉ๋˜๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ์ด๋‹ค.
ํ•ด์‹œ ํ…Œ์ด๋ธ”์€ ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ‰์ธ(index)์„ ๋ฒ„ํ‚ท(bucket)์ด๋‚˜ ์Šฌ๋กฏ(slot)์˜ ๋ฐฐ์—ด๋กœ ๊ณ„์‚ฐํ•œ๋‹ค. - ์œ„ํ‚ค ๋ฐฑ๊ณผ -

 

์ฆ‰, key์™€ value๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

 

key๊ฐ’์œผ๋กœ value๋ฅผ ํ•œ ๋ฒˆ์— ์ฐพ์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‚ญ์ œ,์‚ฝ์ž…,๊ฒ€์ƒ‰์ด ํ‰๊ท  O(1)์ด ๊ฑธ๋ฆฌ๋Š” ์•„์ฃผ ํšจ์œจ์ ์ธ ์ž๋ฃŒ๊ตฌ์ฃ ์ด์ฃ .

 

ํ•˜์ง€๋งŒ ํ•ด์‰ฌ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ํ‚ค๊ฐ’์„ ์ธ๋ฑ์Šค๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์—์„œ ์ถฉ๋Œ์„ ๋ง‰๊ธฐ ์œ„ํ•ด ์ผ๋ฐ˜์ ์œผ๋กœ ํฐ ๊ณต๊ฐ„๋ณต์žก๋„๊ฐ€ ํ•„์š”ํ•˜๊ณ 

 

์ถฉ๋Œ์ด ๋ฐœ์ƒํ•œ ์ตœ์•…์˜ ๊ฒฝ์šฐ O(n)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


Hash๋ž€?

 

์™œ "ํ•ด์‰ฌ" ํ…Œ์ด๋ธ”์ผ๊นŒ์š”?

 

ํ•ด์‰ฌ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ๋œป์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์š”.

 

  • ์ž˜๊ฒŒ ์ฐ๋‹ค
  • ์—‰๋ง์œผ๋กœ ๋งŒ๋“ค๋‹ค
  • ์„ž๋‹ค

 

์ฆ‰, ๋งˆ์Œ๋Œ€๋กœ ์„ž์–ด๋ฒ„๋ฆฌ๋Š” ํ…Œ์ด๋ธ”์„ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๋งˆ์Œ๋Œ€๋กœ ์„ž์–ด๋ฒ„๋ฆฐ ํ…Œ์ด๋ธ”์ด๋ผ๋‹ˆ..? ์ข€ ์ด์ƒํ•˜์ฃ ? ์™œ ์ด๋ ‡๊ฒŒ ์ด๋ฆ„ ์ง€์€๊ฑด์ง€ ์ฐจ๊ทผ์ฐจ๊ทผ ์„ค๋ช…ํ•ด๋“œ๋ฆด๊ฒŒ์š”.

 

ํ•ด์‰ฌ ํ…Œ์ด๋ธ”์€ ํŠน์ •ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ์ด๋ค„์ ธ ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ทธ๋ƒฅ "๋ฐฐ์—ด"๋กœ ๋˜์–ด์žˆ์–ด์š”.

 

์ด "๋ฐฐ์—ด"์„ ํ•ด์‰ฌ ํ…Œ์ด๋ธ”์—์„œ๋Š” ๋ฒ„ํ‚ท ํ˜น์€ ์Šฌ๋กฏ์ด๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. (์•„๋ž˜๋Š” ์‚ฌ์ด์ฆˆ๊ฐ€ 5์ธ ๋ฒ„ํ‚ท์ž…๋‹ˆ๋‹ค.)

 

 

 

๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ ์ด ๋ฒ„ํ‚ท์— ๋“ค์–ด๊ฐˆ ํ‚ค,๋ฐธ๋ฅ˜ ๊ฐ’์ด ์•„๋ž˜์™€ ๊ฐ™์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ• ๊ฒŒ์š”.

 

 


Hash Function

 

๊ทธ๋Ÿฐ๋ฐ ์ด ํ‚ค,๋ฐธ๋ฅ˜ ๊ฐ’๋“ค์„ ์–ด๋–ป๊ฒŒ ๋ฒ„ํ‚ท ์•ˆ์— ๋„ฃ์„๊นŒ์š”?

 

์ด ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ ํ•ด์‰ฌ ํ•จ์ˆ˜(Hash Function) ์ž…๋‹ˆ๋‹ค.

 

๋ฐ”๋กœ ์•„๋ž˜์ฒ˜๋Ÿผ ํ‚ค,๋ฐธ๋ฅ˜ ๊ฐ’์„ ๋ฒ„ํ‚ท ์•ˆ์— ๋งˆ์Œ๋Œ€๋กœ ์„ž์–ด๋ฒ„๋ ค์„œ ๋„ฃ์–ด๋ฒ„๋ฆฌ๊ฒŒ ๋„์™€์ฃผ๋Š” ๊ฒƒ์ด์ฃ . 

 

 

 

 

ํ•˜์ง€๋งŒ ์ง„์งœ ๋ง˜๋Œ€๋กœ ์„ž๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๊ณ  ํšจ์œจ์ ์œผ๋กœ ์„ž์–ด์„œ ๋ฐฐ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

1. ๋ฒ„ํ‚ท ์•ˆ์— ๋“ค์–ด๊ฐ€์•ผ ํ•˜๋ฏ€๋กœ ๋ฒ„ํ‚ท ์‚ฌ์ด์ฆˆ ์ดํ•˜์ธ ์ธ๋ฑ์Šค๊ฐ€ ๋‚˜์™€์•ผ ํ•˜๊ฒŒ ์„ž์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

2. ๋ฒ„ํ‚ท ์•ˆ์˜ ์ธ๋ฑ์Šค๊ฐ€ ์ค‘๋ณต๋˜์ง€ ์•Š๊ฒŒ ์„ž์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

์œ„ ๋‘๊ฐ€์ง€ ๊ทœ์น™์„ ์ง€ํ‚ค๋ฉด์„œ ์–ด๋–ป๊ฒŒ ํšจ์œจ์ ์œผ๋กœ ์„ž์„๊นŒ๋ฅผ ๋งŽ์ด ๊ณ ๋ฏผํ•˜์‹  ์„ ๋ฐฐ๋‹˜๋“ค์ด ๊ณ ์•ˆํ•œ ๋Œ€ํ‘œ์ ์ธ 4๊ฐ€์ง€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

1. Division Method

 

๋ง ๊ทธ๋Œ€๋กœ Division(๋‚˜๋ˆ„๊ธฐ)๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์ž…๋ ฅ๊ฐ’์„ ๋ฒ„ํ‚ท์˜ ์‚ฌ์ด์ฆˆ๋กœ ๋‚˜๋ˆ ์„œ ๋‚˜๋จธ์ง€ ๊ฐ’์„ ์ „์ฒด ๋ฒ„ํ‚ท ์‚ฌ์ด์ฆˆ์—์„œ ๋บ€ ์ธ๋ฑ์Šค๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด ์ž…๋ ฅ๊ฐ’์ด 5์ด๊ณ  ๋ฒ„ํ‚ท ์‚ฌ์ด์ฆˆ๊ฐ€ 10์ด๋ผ๋ฉด 10 - (5%10) = 5๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

 

์ด ๋•Œ ๋ฒ„ํ‚ท์˜ ์‚ฌ์ด์ฆˆ๋Š” ์†Œ์ˆ˜๋กœ ์ •ํ•˜๊ณ , 2์˜ ์ œ๊ณฑ์ˆ˜์™€ ๋จผ ๊ฐ’์„ ์‚ฌ์šฉํ•ด์•ผ ํšจ๊ณผ๊ฐ€ ์ข‹๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

2. Digit Folding

 

์ด ๋ฐฉ๋ฒ•์€ ํ‚ค๊ฐ’์ด ๋ฌธ์ž์—ด์ผ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ธ๋ฐ์š”.

 

๋ฌธ์ž์—ด์„ ASCII ์ฝ”๋“œ๋กœ ๋ฐ”๊พธ๊ณ  ํ•ฉํ•œ ๊ฐ’์„ ์ธ๋ฑ์Šค๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๋งŒ์•ฝ FOMA๋ผ๋ฉด F:70, O:79, M:77,A:65 = 291์ด ์ธ๋ฑ์Šค๋กœ ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ทผ๋ฐ ์ธ๋ฑ์Šค๊ฐ€ ๋ฒ„ํ‚ท ์‚ฌ์ด์ฆˆ๋ณด๋‹ค ๋” ํฌ๋ฉด ์–ด๋–ป๊ฒŒ ํ• ๊นŒ์š”? ๋ฐ”๋กœ ์ฒซ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์ธ Division Method๋กœ

 

๋‚˜๋ˆ ์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

 

3. Multiplication Method

 

์ˆซ์ž๋กœ ๋œ Key๊ฐ’(k)๊ณผ 0๊ณผ 1์‚ฌ์ด์˜ ์‹ค์ˆ˜ A, 2์˜ ์ œ๊ณฑ์ˆ˜์ธ m์„ ์‚ฌ์šฉํ•˜์—ฌ ์•„๋ž˜์™€ ๊ฐ™์€ ์‹์„ ๋งŒ๋“ค์–ด ์ธ๋ฑ์Šค๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

floor(k*A mod 1)*m

 

k๊ฐ€ 100 , A๊ฐ€ 0.12345 , m์ด 2³ ์ด๋ผ๋ฉด

 

100*0.12345%1 * 8 = 2.76 ์ด๋ฏ€๋กœ ์ธ๋ฑ์Šค๋Š” 2๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

 

4. Universal Hashing

 

์œ„ ํ•ด์‰ฌํ•จ์ˆ˜๋ฅผ ํฌํ•จํ•ด ์—ฌ๋Ÿฌ ํ•ด์‰ฌํ•จ์ˆ˜๋ฅผ ์ง‘ํ•ฉ์— ๋„ฃ์–ด๋‘๊ณ  ๋ฌด์ž‘์œ„๋กœ ๊บผ๋‚ด์„œ ์ธ๋ฑ์Šค๋กœ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.


Collision(์ถฉ๋Œ)

 

์œ„์˜ ํ•ด์‰ฌํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ตœ๋Œ€ํ•œ ์ค‘๋ณต์„ ํ”ผํ•œ๋‹ค๊ณ  ํ•ด๋„ ์ค‘๋ณต๋˜๋Š” ์ˆซ์ž๊ฐ€ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๊ฒ ์ฃ ?

 

์˜ˆ๋ฅผ ๋“ค๋ฉด key,value๊ฐ€ (5,Five) ๊ฐ’๊ณผ (15,Fifteen) ๊ฐ’์ด ์žˆ๊ณ  ๋ฒ„ํ‚ท์˜ ํฌ๊ธฐ๊ฐ€ 10์ด๋ผ๊ณ  ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

Division Method๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด 5/10 -> index =5 , 15/10 -> index = 5๋กœ ์ค‘๋ณต์ด ๋ฐœ์ƒํ•˜๊ฒŒ ๋˜์ฃ ?

 

์ด๊ฒƒ์„ ๋ฐ”๋กœ ์ถฉ๋Œ์ด๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ๋Š” ๋ฒ„ํ‚ท ์•ˆ์— ๊ฐ’์„ ์–ด๋–ป๊ฒŒ ์ €์žฅํ•ด์•ผ ํ• ๊นŒ์š”?

 

์ด๊ฒƒ ๋˜ํ•œ ์„ ๋ฐฐ๋‹˜๋“ค์ด ๋จผ์ € ๊ณ ์•ˆํ•ด๋‚ธ ๋ฐฉ๋ฒ•์ด ๋Œ€ํ‘œ์ ์œผ๋กœ 2๊ฐ€์ง€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

1. Chaining 

 

์ฒด์ด๋‹์€ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ค‘๋ณต๋œ ๊ฐ’์„ ์—ฐ๊ฒฐํ•ด ๋†“๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. (์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ชจ๋ฅด์‹œ๋ฉด ์—ฌ๊ธฐ ์—์„œ ํ™•์ธํ•ด์ฃผ์„ธ์š”!)

 

 

 

 

์œ„์—์„œ ์ตœ์•…์˜ ๊ฒฝ์šฐ O(n)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ํ•„์š”ํ•  ์ˆ˜๋„ ์žˆ๋‹ค๊ณ  ํ–ˆ๋Š”๋ฐ, ์ฒด์ด๋‹์„ ์‚ฌ์šฉํ•˜๊ณ  ๋ชจ๋“  ์ˆ˜๊ฐ€ ์ถฉ๋Œํ–ˆ์„ ๊ฒฝ์šฐ

 

๋ชจ๋“  ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋ฅผ ํƒ์ƒ‰ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— O(n)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ๋“ญ๋‹ˆ๋‹ค.

 

2. Open Addressing

 

๊ฐœ๋ฐฉ ์ฃผ์†Œ๋ฒ•์€ ์ธ๋ฑ์Šค๊ฐ€ ์ค‘๋ณต๋˜์—ˆ๋‹ค๋ฉด ํ•ด๋‹น ์ธ๋ฑ์Šค๋ฅผ ํ”ผํ•˜๊ณ  ๋‹ค๋ฅธ ๋น„์–ด์žˆ๋Š” ์ธ๋ฑ์Šค๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

 

ํ•˜์ง€๋งŒ ๋น„์–ด์žˆ๋Š” ์ธ๋ฑ์Šค์— ๋ฌด์ž‘์œ„๋กœ ๊ฐ’์„ ๋„ฃ์œผ๋ฉด ์•ˆ๋˜๊ฒ ์ฃ ?

 

๋น„์–ด์žˆ๋Š” ์ธ๋ฑ์Šค๋ฅผ ์ฐพ๋Š” ๊ฒƒ ๋˜ํ•œ ์ด๋ฏธ ์ •ํ•ด์ง„ ๊ทœ์น™์ด ๋Œ€ํ‘œ์ ์œผ๋กœ 3๊ฐ€์ง€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

2-1. Linear Probing

 

์ค‘๋ณต๋œ ์ธ๋ฑ์Šค์—์„œ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋น„์–ด์žˆ๋Š” ์ธ๋ฑ์Šค๋ฅผ ์ฐพ์•„์„œ ๊ฐ’์„ ๋„ฃ์Šต๋‹ˆ๋‹ค.

 

๋งŒ์•ฝ ์•„๋ž˜์™€ ๊ฐ™์ด 0๋ฒˆ์งธ ์ธ๋ฑ์Šค๊ฐ€ ์ค‘๋ณต๋˜์—ˆ๋‹ค๋ฉด 

 

 

๋น„์–ด์žˆ๋Š” ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ธ๋ฑ์Šค์ธ 1๋ฒˆ์งธ์— ๊ฐ’์„ ๋„ฃ์Šต๋‹ˆ๋‹ค.

 

 

2-2. Quadratic Probing 

 

์ค‘๋ณต๋œ ์ธ๋ฑ์Šค์—์„œ ๋น„์–ด์žˆ๋Š” ์ธ๋ฑ์Šค๋ฅผ ๋ฐœ๊ฒฌํ•  ๋•Œ๊นŒ์ง€ ํญ์„ ์ œ๊ณฑ๋งŒํผ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

 

์•„๋ž˜์™€ ๊ฐ™์ด 0๋ฒˆ์งธ ์ธ๋ฑ์Šค๊ฐ€ ์ค‘๋ณต๋˜์—ˆ๋‹ค๋ฉด 1^2 ๋’ค์ธ 1๋ฒˆ์งธ ์ธ๋ฑ์Šค 2^2 ๋’ค์ธ 4๋ฒˆ์งธ ์ธ๋ฑ์Šค 3^2 ๋’ค์ธ 9๋ฒˆ์งธ ์ธ๋ฑ์Šค....

 

์ด๋Ÿฐ์‹์œผ๋กœ ์ˆซ์ž๋ฅผ ๋Š˜๋ ค๊ฐ€๋ฉฐ ์ œ๊ณฑ์ˆ˜๋งŒํผ์˜ ๋’ค์˜ ์ธ๋ฑ์Šค๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

 

2-3. Double Hasing Probing

 

์ค‘๋ณต๋œ ์ธ๋ฑ์Šค์—์„œ ๋น„์–ด์žˆ๋Š” ์ธ๋ฑ์Šค๋ฅผ ์ฐพ์„ ๋•Œ๊นŒ์ง€ ํ•ด์‰ฌ ํ•จ์ˆ˜๋กœ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

 

h1(k)→ ์ถฉ๋Œ → h1(k)+1*h2(k)→์ถฉ๋Œ→ h1(k)+2*h2(k)→์ถฉ๋Œ→h1(k)+3*h2(k)→... ๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค๋ฉด h1(k) = key % 7 , h2(k) = 5 - (key%5) ์„ค์ •ํ•˜์˜€๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๋น„์–ด์žˆ๋Š” ์ธ๋ฑ์Šค๋ฅผ ํƒ์ƒ‰ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

https://courses.cs.washington.edu/courses/cse326/00wi/handouts/lecture16/sld025.htm


์˜ค๋Š˜์€ ์ด๋ ‡๊ฒŒ ํ•ด์‰ฌ ํ…Œ์ด๋ธ”์˜ ๊ฐœ๋…,ํ•ด์‰ฌ ํ•จ์ˆ˜,์ถฉ๋Œ,์ถฉ๋Œ๋ฐฉ์ง€๋ฒ•์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค.

 

์›๋ž˜๋Š” ๊ตฌํ˜„๊นŒ์ง€ ํ•˜๋ ค๊ณ  ํ–ˆ์œผ๋‚˜ ๊ธ€์„ ์“ฐ๋‹ค๋ณด๋‹ˆ ๋„ˆ๋ฌด ๊ธธ์–ด์ ธ์„œ ๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ ๊ตฌํ˜„์„ ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€