[์๋ฃ๊ตฌ์กฐ(Data Structure)] Tree / Hashing
ํธ๋ฆฌ (Tree)
- ๋ถ๋ชจ ๋ ธ๋์ ์์ ๋ ธ๋๊ฐ์ ์ฐ๊ฒฐ๋ก ์ด๋ฃจ์ด์ง ์๋ฃ ๊ตฌ์กฐ
์ด์ง ํธ๋ฆฌ (binary tree)
- ๋ถ๋ชจ๋ ธ๋์ ์์๋ ธ๋๊ฐ ๋ ๊ฐ ์ดํ์ธ ํธ๋ฆฌ (๊ฐ ๋ ธ๋๊ฐ ์ต๋ ๋๊ฐ์ ์์์ ๊ฐ์ง)
์ด์ง ๊ฒ์ ํธ๋ฆฌ (binary search tree)
-
์๋ฃ(key)์ ์ค๋ณต ํ์ฉํ์ง ์์
-
์ผ์ชฝ ์์ ๋ ธ๋๋ ๋ถ๋ชจ ๋ ธ๋๋ณด๋ค ์์ ๊ฐ / ์ค๋ฅธ์ชฝ ์์ ๋ ธ๋๋ ๋ถ๋ชจ ๋ ธ๋๋ณด๋ค ํฐ ๊ฐ์ ๊ฐ์ง
-
์๋ฃ ๊ฒ์์ ๊ฑธ๋ฆฌ๋ ์๊ฐ = ํ๊ท log(n)
ํ (heap)
-
์ต๋๊ฐ ๋ฐ ์ต์๊ฐ์ ์ฐพ์๋ด๋ ์ฐ์ฐ์ ๋น ๋ฅด๊ฒ ํ๊ธฐ ์ํด ๊ณ ์๋ ์์ ์ด์งํธ๋ฆฌ(complete binary tree)๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ํ ์๋ฃ๊ตฌ์กฐ(tree-based structure)
-
-
Max heap (์ต๋ ํ): ๋ถ๋ชจ ๋ ธ๋๋ ์์ ๋ ธ๋๋ณด๋ค ํญ์ ํฌ๊ฑฐ๋ ๊ฐ์ ๊ฐ์ ๊ฐ์ง
-
Min heap (์ต์ ํ) : ๋ถ๋ชจ ๋ ธ๋๋ ์์ ๋ ธ๋๋ณด๋ค ํญ์ ์๊ฑฐ๋ ๊ฐ์ ๊ฐ์ ๊ฐ์ง
-
ํค๊ฐ์ ๋์๊ด๊ณ๋ ๋ถ๋ชจ-์์๋ ธ๋๊ฐ์๋ง ์ฑ๋ฆฝ, ํ์ ์ฌ์ด์๋ ๋์๊ด๊ณ ์ ํด์ง์ง ์์
-
- ๊ฐ์ฅ ๋(๋ฎ)์ ์ฐ์ ์์๋ฅผ ๊ฐ์ง๋ ๋ ธ๋๊ฐ ํญ์ ๋ฟ๋ฆฌ๋ ธ๋์ ์์น > ์ฐ์ ์์ ํ(Priority queue)์ ๊ฐ์ ์ถ์์ ์๋ฃํ ๊ตฌํ ๊ฐ๋ฅ
ํด์ฑ (Hashing)
-
ํค(key)์ ๋ํ ์๋ฃ๋ฅผ ๊ฒ์ํ๊ธฐ ์ํ ์ฌ์ (dictionary) ๊ฐ๋ ์ ์๋ฃ ๊ตฌ์กฐ
-
key - value ํ ์, key๋ ์ ์ผ
-
index = h(key)
- ํด์ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํค๋ฅผ ํด์๊ฐ์ผ๋ก ๋งคํ, ์ธ๋ฑ์ค ๋ฐํ
- ํด๋น ์ธ๋ฑ์ค ์์น์ ์๋ฃ ์ ์ฅ, ๊ฒ์
-
์ด๋ ๊ฒ ์ ์ฅ๋๋ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ๋ฅผ โํด์ํ ์ด๋ธ(Hash table)โ์ด๋ผ๊ณ ํจ