๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm/Study

[Algorithm] ํ•ด์‹œ ํ…Œ์ด๋ธ”(Hash Table)

by ํ˜ธ๋ฐ€์ด 2022. 6. 9.

๐Ÿ“Œ ํ•ด์‹œ ํ…Œ์ด๋ธ”(Hash Table)?

  • ์–ด๋–ค ํŠน์ • ๊ฐ’์„ ๋ฐ›์œผ๋ฉด ๊ทธ ๊ฐ’์„ ํ•ด์‹œ ํ•จ์ˆ˜์— ํ†ต๊ณผ ์‹œ์ผœ ๋‚˜์˜จ ์ธ๋ฑ์Šค์— ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ
  • ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ๊ฐ’์„ ์‹ ์†ํ•˜๊ฒŒ ์ฐพ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด๋Š” ํ•ด์‹œ ํ…Œ์ด๋ธ”๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ํ‚ค์™€ ํ•ด๋‹น ํ‚ค์˜ ์—ฐ๊ด€๋œ ๊ฐ’์„ ์ •์˜ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค.

 

โœ… ํ•ด์‹œ ํ•จ์ˆ˜ (Hash Function) = ํ•ด์‹œ(Hash)

์ž„์˜์˜ ๊ธธ์ด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ์ •๋œ ๊ธธ์ด์˜ ๋ฐ์ดํ„ฐ๋กœ ๋งคํ•‘ํ•˜๋Š” ํ•จ์ˆ˜

  • ํ•ด์‹œ ํ•จ์ˆ˜์˜ ํŠน์„ฑ
    • ์••์ถ•์„ฑ: ๋‹ค์–‘ํ•œ ๊ฐ€๋ณ€ ๊ธธ์ด์˜ ์ž…๋ ฅ์— ๋Œ€ํ•ด ๊ณ ์ •๋œ ํฌ๊ธฐ์˜ ๊ฒฐ๊ณผ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์„ฑ์งˆ์„ ๊ฐ€์ง„๋‹ค.
    • ํšจ์œจ์„ฑ: ์–ด๋–ค ์ž…๋ ฅ ๊ฐ’์— ๋Œ€ํ•ด์„œ๋„ ๋งŽ์€ ์ž์›๊ณผ ์‹œ๊ฐ„์ด ์†Œ์š”๋˜์ง€ ์•Š๊ณ  ์ฒ˜๋ฆฌ๋˜๋Š” ์„ฑ์งˆ์„ ๊ฐ€์ง„๋‹ค.
    • ์ €ํ•ญ์„ฑ: ๊ฒฐ๊ณผ๊ฐ’์„ ๋ฐ”ํƒ•์œผ๋กœ ์ž…๋ ฅ ๊ฐ’์„ ์ฐพ๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ์„ฑ์งˆ์„ ๊ฐ€์ง„๋‹ค.

 

โœ… ํ•ด์‹œ ์ถฉ๋Œ(Hash Collision) 

๋ฐ์ดํ„ฐ๋ฅผ Key๋กœ ๊ฐ„์†Œํ™”ํ•˜์—ฌ ์ €์žฅํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ใ…ใ„ด์šฉ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ™์€ ํ‚ค๋ฅผ ๊ฐ–๋Š” ๊ฒฝ์šฐ ์ƒ๊ธฐ๋Š” ๊ฒƒ์„ ํ•ด์‹œ ์ถฉ๋Œ์ด๋ผ๊ณ  ํ•œ๋‹ค.

ํ•ด์‹œํ…Œ์ด๋ธ”์˜ ์„ฑ๋Šฅ๋Šฅ์„ ๋–จ์–ด๋œจ๋ฆฌ๋Š” ์›์ธ์ด ๋œ๋‹ค.

  • ํ•ด๊ฒฐ๋ฐฉ๋ฒ•
    • ํ•ด์‹œ ํ•จ์ˆ˜ ๋ณ€๊ฒฝ: ๋” ํฐ ์ˆซ์ž์˜ ๊ณต๊ฐ„๊ณผ ๋ชจ๋“ˆ ์‚ฐ์ˆ  ๊ฐ’์„ ์ด์šฉํ•ด ์ถฉ๋Œ์„ ์ตœ์†Œํ™”ํ•œ๋‹ค.
      (๊ฐ™์€ ์ˆ˜๊ฐ€ ๋‚˜์˜ค๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ค„์ธ๋‹ค.)
    • ์ž๋ฃŒ๊ตฌ์กฐ ํ™•์žฅ: ์„ ํ˜• ์กฐ์‚ฌ๋ฒ•, ์ด์ค‘ํ•ด์‹œ, ์ฑ„์ด๋‹
  • ๊ตฌํ˜„ ๋ฉ”์„œ๋“œ(Method)
    • clear
    • size
    • getBuffer
    • print
    • put
    • remove
    • get

'Algorithm > Study' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Algorithm] ํž™(Heap)  (2) 2022.06.26
[์บ์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜] LRU (Least Recently Used Algorithm)  (0) 2022.02.10