์๊ฐ๋ณต์ก๋๋?
์๊ฐ ๋ณต์ก๋๋ ํน์ ์๊ณ ๋ฆฌ์ฆ์ด ์ด๋ค ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์๋ฏธํฉ๋๋ค. ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋ด๋ ์์ค๋ผ๋ฉด ์ต๋ํ ์๊ฐ์ด ์ ๊ฒ ๊ฑธ๋ฆฌ๋ ๊ฒ ์ข์ ์์ค์ ๋๋ค.
๋น -์ค ํ๊ธฐ๋ฒ
์๊ฐ ๋ณต์ก๋์๋ ์ฌ๋ฌ ๊ฐ๋ ์ด ์์ง๋ง '์๋ฌด๋ฆฌ ๋ง์ด ๊ฑธ๋ ค๋ ์ด ์๊ฐ ์์๋ ๋๋ ๊ฒ'์ ๊ฐ๋ ์ด ์ ์ผ ์ค์ํฉ๋๋ค. ์ต์ ์ ๊ฒฝ์ฐ๋ฅผ ๊ณ์ฐํ๋ ๋ฐฉ์์ ๋น -์ค ํ๊ธฐ๋ฒ์ด๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
(1) O(1) : ์
๋ ฅ ๋ฐ์ดํฐ์ ํฌ๊ธฐ์ ์๊ด์์ด ์ธ์ ๋ ์ผ์ ํ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ํ๋
๋๋ค. ๋ฐ์ดํฐ๊ฐ ์ผ๋ง๋ ์ฆ๊ฐํ๋ ์ฑ๋ฅ์ ์ํฅ์ ๊ฑฐ์ ๋ฏธ์น์ง ์์ต๋๋ค.
(2) O(logโ n) : ์
๋ ฅ ๋ฐ์ดํฐ์ ํฌ๊ธฐ๊ฐ ์ปค์ง ์๋ก ์ฒ๋ฆฌ ์๊ฐ์ด ๋ก๊ทธ๋งํผ ์งง์์ง๋ ์๊ณ ๋ฆฌ์ฆ์
๋๋ค. ์๋ฅผ ๋ค์ด ๋ฐ์ดํฐ๊ฐ 10๋ฐฐ๊ฐ ๋๋ฉด, ์ฒ๋ฆฌ ์๊ฐ์ 2๋ฐฐ๊ฐ ๋ฉ๋๋ค. ์ด์ง ํ์์ด ๋ํ์ ์ด๋ฉฐ, ์ฌ๊ท๊ฐ ์๊ธฐ๋ฅ์ผ๋ก ์ด๋ฃจ์ด์ง๋ ๊ฒฝ์ฐ๋ ํด๋น๋ฉ๋๋ค.
(3) O(n) : ์
๋ ฅ ๋ฐ์ดํฐ์ ํฌ๊ธฐ์ ๋น๋กํด ์ฒ๋ฆฌ ์๊ฐ์ด ์ฆ๊ฐํ๋ ์๊ณ ๋ฆฌ์ฆ์
๋๋ค. ์๋ฅผ ๋ค์ด ๋ฐ์ดํฐ๊ฐ 10๋ฐฐ๊ฐ ๋๋ฉด, ์ฒ๋ฆฌ ์๊ฐ๋ 10๋ฐฐ๊ฐ ๋ฉ๋๋ค. 1์ฐจ์ for๋ฌธ์ด ์์ต๋๋ค.
(4) O(n logโ n) : ๋ฐ์ดํฐ๊ฐ ๋ง์์ง ์๋ก ์ฒ๋ฆฌ์๊ฐ์ด ๋ก๊ทธ ๋ฐฐ๋งํผ ๋ ๋์ด๋๋ ์๊ณ ๋ฆฌ์ฆ์
๋๋ค. ์๋ฅผ ๋ค์ด ๋ฐ์ดํฐ๊ฐ 10๋ฐฐ๊ฐ ๋๋ฉด, ์ฒ๋ฆฌ ์๊ฐ์ ์ฝ 20๋ฐฐ๊ฐ ๋ฉ๋๋ค. ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ์ค ๋ณํฉ ์ ๋ ฌ, ํต ์ ๋ ฌ์ด ๋ํ์ ์
๋๋ค.
(5) O(nยฒ) : ๋ฐ์ดํฐ๊ฐ ๋ง์์ง์๋ก ์ฒ๋ฆฌ์๊ฐ์ด ๊ธ์์ ์ผ๋ก ๋์ด๋๋ ์๊ณ ๋ฆฌ์ฆ์
๋๋ค. ์๋ฅผ ๋ค์ด ๋ฐ์ดํฐ๊ฐ 10๋ฐฐ๊ฐ ๋๋ฉด, ์ฒ๋ฆฌ ์๊ฐ์ ์ต๋ 100๋ฐฐ๊ฐ ๋ฉ๋๋ค. ์ด์ค ๋ฃจํ๊ฐ ๋ํ์ ์
๋๋ค.
(6) O(2โฟ) : ๋ฐ์ดํฐ๊ฐ ๋ง์์ง์๋ก ์ฒ๋ฆฌ์๊ฐ์ด ๊ธฐํ๊ธ์์ ์ผ๋ก ๋์ด๋๋ ์๊ณ ๋ฆฌ์ฆ์
๋๋ค. ๋ํ์ ์ผ๋ก ํผ๋ณด๋์น ์์ด์ด ์์ผ๋ฉฐ, ์ฌ๊ท๊ฐ ์ญ๊ธฐ๋ฅ์ ํ ๊ฒฝ์ฐ๋ ํด๋น๋ฉ๋๋ค.
์๊ฐ๋ณต์ก๋ ์ค์ด๋ ๋ฒ
์๊ฐ ๋ณต์ก๋์์ ๋ฐ๋ณต๋ฌธ์ด ๊ฐ์ฅ ์๊ฐ ์๋ชจ์ ํฐ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ๊ทธ๋ ๊ธฐ์ ์๊ฐ ๋ณต์ก๋๋ฅผ ์ค์ด๋ ๋ฐฉ๋ฒ์ ๋ฐ๋ณต๋ฌธ์ ์ซ์๋ฅผ ์ค์ด๋ ๊ฒ์ ๋๋ค.
๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ ์ ํ๊ฒ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
๋ง์ง๋ง ๋ฐฉ๋ฒ์ ์๊ณ ๋ฆฌ์ฆ์ ์ ์ ํ๊ฒ ์ด์ฉํ๋ ๊ฒ์ ๋๋ค. ๋ํ์ ์ผ๋ก ์ด์ง ํ์, ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ, ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ๋ฑ์ด ์์ต๋๋ค.
๊ฒฐ๋ก ์ ๋ฐ์ดํฐ์ ์ ๊ทผ๊ณผ ํ์์ด ์ค์ํ๋ค๋ฉด ๋ฐฐ์ด์ ์จ์ผํ๊ณ ๋ฐ์ดํฐ์ ์ถ๊ฐ, ์ญ์ ๊ฐ ์ค์ํ๋ค๋ฉด ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ฅผ ์จ์ผํฉ๋๋ค.
์ฐ๊ฒฐ๋ฆฌ์คํธ์ ๋ฐฐ์ด์ ์ฐจ์ด
๋จผ์ ๋ฐฐ์ด์ ์ ์ ์ธ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค. ์ ์ ์ ์ด๋๋ฉด ๋ฐฐ์ด์ ๋ง๋ค๊ธฐ ์ํด์๋ ๋ฏธ๋ฆฌ ๊ทธ ํฌ๊ธฐ๋ฅผ ์ ํด๋์ผํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ํ๋ฒ ํฌ๊ธฐ๋ฅผ ์ ํด๋์ผ๋ฉด ํฌ๊ธฐ ์์ ์ด ๋ถ๊ฐํ๊ณ ๋ฐฐ์ด ํฌ๊ธฐ ์ด์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ค๋ ๋จ์ ์ด ์์ต๋๋ค. ํ์ง๋ง ์ฐ์๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ํ ๋น๋ฐ๊ธฐ ๋๋ฌธ์ ์๊ธฐ๋ ํฐ ์ฅ์ ์ด ์๋๋ฐ, ๋ฐ์ดํฐ๊ฐ ์์ฐจ์ ์ผ๋ก ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๊ฐ ์ธ๋ฑ์ค๋ฅผ ๊ฐ์ง๊ฒ ๋๋ฉด์ ์์ ์ ๊ทผ์ด ๊ฐ๋ฅํด์ง๋๋ค.
๋ฐ๋ฉด์, ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ ๋์ ์ธ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค. ์ ์ ์ด ์๋ ๋์ ์ธ ์ด์ ๋ ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ ํฌ๊ธฐ๋ฅผ ๋ฏธ๋ฆฌ ์ ํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ฐ๊ฒฐ๋ฆฌ์คํธ์๋ ๋ ธ๋๊ฐ ์กด์ฌํ๋๋ฐ, ๊ทธ ๋ ธ๋์๋ ์ ์ฅ๋ ๋ฐ์ดํฐ ๊ฐ๊ณผ ๋ค์ ๋ฐ์ดํฐ๊ฐ ์๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ฐ์ดํฐ๋ค์ด ๋ฐฐ์ด์ฒ๋ผ ์ฐ์์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋์ด ์์ง ์๊ณ ์๋ก ๋จ์ด์ ธ ์์ด๋ ์ ํ๊ตฌ์กฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค. ์ด ์ฅ์ ์ ๊ณง ํฌ๊ธฐ์ ์ ํ์ด ๊ฑธ๋ฆฌ์ง ์๋๋ค๋ ์ ์ด ๋๊ณ ์ด ๋๋ฌธ์ ๋ฐ์ดํฐ ์ถ๊ฐ, ์ญ์ ๊ฐ ๊ต์ฅํ ์์ ๋ก์์ง๋๋ค. ํ์ง๋ง ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ ๋ฐฐ์ด์ฒ๋ผ ์ฐ์์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ํ ๋น๋ฐ์ง ์๊ธฐ ๋๋ฌธ์ ์์ ์ ๊ทผ์ด ๋ถ๊ฐ๋ฅํฉ๋๋ค. ๋๋ฌธ์ ์ฐ๊ฒฐ๋ฆฌ์คํธ๊ฐ ๋ฐ์ดํฐ๋ฅผ ํ์ํ๋ ๋ฐฉ์์ ์์ฐจ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํฉ๋๋ค.
์ฐ๊ฒฐ๋ฆฌ์คํธ์ ๋ฐฐ์ด์ ์๊ฐ๋ณต์ก๋ ์ฐจ์ด
๊ฒฝ์ฐ์ ๋ฐ๋ผ ์ฐ๊ฒฐ๋ฆฌ์คํธ์ ๋ฐฐ์ด ์ค ๋ ์ข์ ์ฑ๋ฅ์ด ๊ฒฐ์ ๋ฉ๋๋ค.
1) ๋ฐ์ดํฐ ํ์
์ฐ๊ฒฐ๋ฆฌ์คํธ : ์์ฐจ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ด๋ค ํ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๊ธฐ ์ํด์๋ ์ฒ์๋ถํฐ ์์ฐจ์ ์ผ๋ก ํ์ํด์ผ ํฉ๋๋ค. ๋ฐ๋ผ์ O(n)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋๋ค.
๋ฐฐ์ด : ์์ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ํ์ํ ๋ ์ฒ์๋ถํฐ ์ฐพ์ ํ์๊ฐ ์์ต๋๋ค. ์ธ๋ฑ์ค ๋ฒํธ๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ธ๋ฑ์ค๋ฅผ ํตํด์ ๋งค์ฐ ๋น ๋ฅด๊ฒ ํ์ํ ์ ์์ต๋๋ค. ์ด ๋ ๋ฐฐ์ด์ O(1)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋๋ค.
2) ๋ฐ์ดํฐ ์ถ๊ฐ, ์ญ์
์ฐ๊ฒฐ๋ฆฌ์คํธ : ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๋ ํ์ ์์ฒด์ ์๊ฐ๋ณต์ก๋๋ O(1)์ ๋๋ค. ๋ ธ๋๊ฐ ๊ฐ์ง๊ณ ์๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๊ฐ๋ง ๊ฐ์ ๋ผ์์ฃผ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ค๋ง, ์ถ๊ฐํ๋ ค๋ ๋ฐ์ดํฐ์ ์์น๊ฐ ๋งจ ์ฒ์์ด ์๋๊ณ ๊ทธ ์ดํ๋ผ๋ฉด ์์ฐจ์ ์ผ๋ก ํ์ํ๋ฉด์ ํด๋น ์์น๊น์ง ๊ฐ์ผํฉ๋๋ค. ์ด ๋ ๋ฐ์ํ๋ ์๊ฐ๋ณต์ก๋๊ฐ O(n)์ ๋๋ค. ๋ฐ๋ผ์ ํฌ๊ฒ ๋๊ฐ์ง๋ก ๋๋ ๋ณผ ์ ์์ต๋๋ค.
์ถ๊ฐํ๋ ค๋ ๋ฐ์ดํฐ์ ์์น๊ฐ ๋งจ ์์ด๋ผ๋ฉด, O(1)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค.
์ถ๊ฐํ๋ ค๋ ๋ฐ์ดํฐ์ ์์น๊ฐ ๋งจ ์ ๊ทธ ์ดํ๋ผ๋ฉด O(n)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค.
๋ฐฐ์ด : ๋ฐฐ์ด์ ๊ฒฝ์ฐ์๋ ๋ฐ์ดํฐ๋ค์ด ์์ฐจ์ ์ผ๋ก ์ ์ฅ๋์ด์์ต๋๋ค. ๋ฐ๋ผ์ ๋งจ ์ฒ์์ด๋ ๊ทธ ์ดํ์ ๋ฐ์ดํฐ๊ฐ ์ถ๊ฐ๋ ๊ฒฝ์ฐ ๊ทธ ๋ค์ ์๋ ๋ฐ์ดํฐ๋ค์ ์ ๋ถ ํ ์นธ์ฉ ๋ค๋ก ๋ฏธ๋ค์ผ ํฉ๋๋ค. ์ฌ๊ธฐ์ ์๊ฐ๋ณต์ก๋๊ฐ O(n)์ ๋๋ค. ๋ง์ฝ์ ๋ฐฐ์ด์ ๊ณต๊ฐ์ด ๋จ์ ์๊ณ ๋ฐ์ดํฐ๋ฅผ ๋งจ ๋ค์ ์ถ๊ฐํ๋ค๋ฉด ์ด ๋๋ O(1)์ ๋๋ค.
์ถ๊ฐํ๋ ค๋ ๋ฐ์ดํฐ๊ฐ ๋งจ ๋ค๊ฐ ์๋๋ผ๋ฉด, ์ถ๊ฐ๋๋ ๋ฐ์ดํฐ ์์น ์ดํ์ ์๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ค์ ํ ์นธ์ฉ ๋ฏธ๋ค์ผํ๋ฏ๋ก O(n)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋๋ค.
์ถ๊ฐํ๋ ค๋ ๋ฐ์ดํฐ์ ์์น๊ฐ ๋งจ ๋ค์ด๊ณ ๋ฐฐ์ด์ ๊ณต๊ฐ์ด ๋จ์์๋ค๋ฉด, O(1)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋๋ค.
ํด์ ํ ์ด๋ธ์ด๋? ์ฐ๊ด ๋ฐฐ์ด์ ์ผ์ข ์ผ๋ก, ํค๋ฅผ ๊ฐ์ ๋งคํํ ์ ์๋ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค.
์ฅ์ : ์ฝ์ , ์ญ์ , ํ์ ์๊ฐ์ด ๋น ๋ฆ ๋๋ค.
๋จ์ : ์์๊ฐ ๋ณด์ฅ๋์ง ์์ต๋๋ค.
ํด์ ํ ์ด๋ธ ๊ด๋ จ ์ฉ์ด
ํด์ ํ ์ด๋ธ : ์ฐ๊ด ๋ฐฐ์ด์ ๊ตฌํ ํํ๋ก ํด์, ํด์ ํจ์, ํด์ฑ, ๋ฒํท, ์ฌ๋กฏ ๋ฑ์ ๊ฐ๋ ์ ํฌํจํฉ๋๋ค.
๋ฒํท๊ณผ ์ฌ๋กฏ : ํด์ ํ ์ด๋ธ์์ ๊ฐ์ ๋ฒํท(bucket)๊ณผ ์ฌ๋กฏ(slot)์ผ๋ก ์ด๋ฃจ์ด์ง ํํ์ ํ ์ด๋ธ์ ์ ์ฅ๋๋ค.
(์ด ํ ์ด๋ธ ์์ฒด๋ฅผ ๋ฒํท์ด๋ผ๊ณ ํํ ํ๊ธฐ๋ ํจ)
๋ฒํท(bucket) : ์ฌ๋ฌ๊ฐ์ ์ฌ๋กฏ์ ์ ์ฅํ๋ ๋ ์ฝ๋ ํํ์ ์๋ฃ ๊ตฌ์กฐ๋ก, ๋ฒํท์ ๊ฐฏ์๋ ๊ณ ์ ์ ์ด๋ค.
์ฌ๋กฏ(slot) : ํด์์ ๋งคํ๋๋ ๊ฐ์ด ์ ์ฅ๋์ด ์๋ ๊ณต๊ฐ์ผ๋ก, ํ๋์ ๋ฒํท ์์๋ ์ฌ๋ฌ๊ฐ์ ์ฌ๋กฏ์ด ์กด์ฌํ ์ ์๋ค. ์ฌ๋กฏ์ ํ๋ ์ด์์ ๊ฐ์ ์ ์ฅํ ์ ์๋ค.
ํด์(hash) : ํด์ ํจ์๋ฅผ ํตํด ์ป๋ ๊ฐ์ผ๋ก, ํด์๋ฅผ ์ธ๋ฑ์ค ๋๋ ์ฃผ์๋ก ์ผ์ ์ง์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋๋ก ํฉ๋๋ค. ํด์๋ฅผ ์ด์ฉํด์ ํด์ ํ ์ด๋ธ์ ๋ฒํท(bucket) ๋๋ ์ฌ๋กฏ(slot)์ ์ ๊ทผํ ๋ค ํ์, ์ฝ์ , ์ญ์ ๋ฑ์ ์ฐ์ฐ์ ์ํํ๋ค.
ํด์ ํจ์(hash function) : ์์์ ๊ธธ์ด์ ๋ฐ์ดํฐ(key)๋ฅผย ๊ณ ์ ๋ ๊ธธ์ด์ ๋ฐ์ดํฐ(ํด์)๋ก ๋งคํํ๋ ํจ์.
์ด ๋, ๋งคํ ์ ์๋ ๋ฐ์ดํฐ์ ๊ฐ์ย ํค(key), ๋งคํ ํ ๋ฐ์ดํฐ์ ๊ฐ์ย ํด์(hash)๋ผ๊ณ ํ๋ค. ์ฆ, key -> hash๋ก ๋งคํ ์์ผ์ฃผ๋ ํจ์๋ฅผ ํด์ํจ์๋ผ ํ๋ค.
์ข์ ํด์ ํจ์์ ์กฐ๊ฑด
ํด์ ๊ฐ์ด ํด์ ํ ์ด๋ธ ์ฃผ์ ์์ญ ๋ด์์ ๊ณ ๋ฅด๊ฒ ๋ถํฌ ๋์ด์ผ ํ๋ค.
์ถฉ๋์ด ์ ์ด์ผ ํ๋ค. (์ค๋ณต๊ฐ ์ต์ํ)
๊ณ์ฐ์ด ๋นจ๋ผ์ผ ํ๋ค.
ํด์ฑ : key -> hash -> value๋ก ๊ฐ์ ํ์ํ๋ ๊ณผ์ ์ผ๋ก, ํด์ ํจ์๋ฅผ ์ฌ์ฉํ ํ์์ ๊ฐ๋ฆฌ์ผ ํด์ฑ์ด๋ผ๊ณ ํ๋ค. ํด์ฑ์ ๋งค์ฐย ๋น ๋ฅธ ๊ฒ์์ ์ํ ์ฉ๋๋ก ๋ง์ด ์ฌ์ฉ๋๋ค. ํ๊ท ์ ์ผ๋ก O(1)์ ํ์ ์๊ฐ์ ๊ฐ๋๋ค. (์ถฉ๋์ด ๋ง์ ๊ฒฝ์ฐ ๋ ๋๋ ค์ง ์ ์๋ค.)ํด์ฑ์ ์ฑ๋ฅ์ ํด์ ํจ์์ ์ฑ๋ฅ๊ณผ ํด์ ํ ์ด๋ธ์ ํฌ๊ธฐ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค.
ํด์ ์ถฉ๋(hash collision) : ํด์ํจ์๊ฐ ์๋ก ๋ค๋ฅธ ๋ ๊ฐ์ ํค์ ๋ํด ๋์ผํ ํด์๊ฐ์ ๋ด๋ ๊ฒฝ์ฐ๋ก,
h(k1) == h(k2)ย ์ฑ๋ฆฝํ๋ฉด ํด์ ์ถฉ๋์ด ๋ฐ์ ํ๋ค๊ณ ํ๋ค. (h : ํด์ํจ์. k1, k2 : ์์์ key๊ฐ) ์ด๋, k1, k2 ๋ฅผ ๋์์ด(synonym)๋ผ ํ๋ค. ํด์ฑ์ ํ ๋, ํด์ ์ถฉ๋์ด ๋ฐ์ํ ์ ์๊ธฐ ๋๋ฌธ์ ํด์ ์ถฉ๋์ ๋ํ ์ฒ๋ฆฌ๊ฐ ๋ฐ๋์ ํ์ํ๋ค.
๋งค์ฐ ํฐ ์งํฉ(ex : ๊ฐ๋ฅํ ๋ชจ๋ ์ฌ๋ ์ด๋ฆ)์ ๋น๊ต์ ์์ ํฌ๊ธฐ์ ๊ณต๊ฐ(hash table size)์ ๋งคํ ์ํฌ ๋, ํด์ ์ถฉ๋์ด ๋ฐ์ํ ์ ์๋ค. ์ด ๊ฒฝ์ฐ table size๊ฐ ์ ๋ ฅ ๊ฐ๋ฅํ ์งํฉ์ ํฌ๊ธฐ๋ณด๋ค ์๊ธฐ ๋๋ฌธ์ ์์ ํ ํด์ ์ถฉ๋์ ํผํ ์ ์๋ ์๊ณ ๋ฆฌ์ฆ์ ์กด์ฌํ์ง ์๋๋ค. (๋น๋๊ธฐ์ง ์๋ฆฌ)
ํด์ ์ถฉ๋ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ
Chainingย : ํด์ ์ถฉ๋์ด ์ผ์ด๋๋ฉด ์ฐ๊ฒฐ ๋ฆฌ์คํธ ํํ๋ก ์ด์ด ๋๊ฐ ์ถฉ๋์ ์ฒ๋ฆฌํ๋ ๊ธฐ๋ฒ
Open adressingย : ํด์ ์ถฉ๋์ด ์ผ์ด๋๋ฉด ๋ค๋ฅธ ๋ฒ์ผ์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ๋ ๋ฐฉ์
Chaining : chain์ฒ๋ผ ์ฐ๊ฒฐ๋์ด ์ด์ด๋๊ฐ๋ค๋ ์๋ฏธ๋ก, ํด์ ์ถฉ๋์ด ๋ฐ์ํ์ ๊ฒฝ์ฐ ์ฐ๊ฒฐ ๋ฆฌ์คํธ ํํ๋ก ์ด์ด ๋๊ฐ๋ค. ์ถฉ๋์ด ์ผ์ด๋ ๊ฒฝ์ฐ, ๋ ธ๋๋ฅผ ์ฐ๊ฒฐ ์์ผ์ฃผ์ํค ๋๋ฌธ์ ํฌ๊ธฐ ์ ํ์ ์์ด์ ์์ ๋กญ๋ค.
Open adressing : ๋ค๋ฅธ ์ฃผ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋๋ก ํ์ฉํ๋ค๋ ์ทจ์ง์์ open addressing์ด๋ผ๊ณ ํ๋๋ฏ ํ๋ค. Closed hashing ์ด๋ผ๊ณ ๋ ํ๋ค.Open hashing๊ณผ ๋ฐ๋๋ก Slot ๊ฐ์๊ฐ ์ ํด์ ธ ์์ด์(๋ซํ์๋ ํํ๋ผ) Closed hashing์ด๋ผ๊ณ ํ๋๋ฏํ๋ค.
์ข ๋ฅ