๐ฉ ํ = ํด์ ๋ฌผ
๋ฐ๋ท์ ํด์ ๋ฌผ์ฒ๋ผ ์๋์ ํฐ ๋ฐ์, ์ค๊ฐ ์ ๋์ ๋, ๊ทธ ์์ ์์ ๋ชจ๋ ์์ผ๋ก ์์ฌ์๋ค.
๐ฉ ๊ทธ๋ํ์ ํธ๋ฆฌ ๊ตฌ์กฐ ์ค ํ๋(์์ ์ด์งํธ๋ฆฌ)
๊ฐ ๋ ธ๋์ ํค ๊ฐ์ด ๊ทธ ์์์ ํค ๊ฐ๋ณด๋ค ์์ง ์๊ฑฐ๋(์ต๋ํ), ํฌ์ง ์์(์ต์ํ) ์์ ์ด์งํธ๋ฆฌ
์์ ์ด์งํธ๋ฆฌ๋ ์ค๋ณต์ ํ์ฉํ์ง ์์ง๋ง ํ์ ํ์ฉํ๋ค.
๐ฉ ์ ๋ ฌ์ ํจ์จ์ ์ผ๋ก ์ํํ๋ ํธ๋ฆฌ
'์ฐ์ ์์ ํ'๋ฅผ ๊ตฌํํ ๋ ์ฌ์ฉ
์ต๋๊ฐ๊ณผ ์ต์๊ฐ์ ๋น ๋ฅด๊ฒ ์ฐพ๊ธฐ ์ํด ๊ณ ์๋จ
๋ฐฐ์ด์ ์ฌ์ฉํ๋ฉด O(n)๋งํผ ์๊ฐ์ด ๊ฑธ๋ฆฌ์ง๋ง, ํ์ ์ฌ์ฉํ๋ฉด O(logn)๋งํผ ์์๋๋ฏ๋ก, ๋ฐฐ์ด์ ์ฌ์ฉํ ๋๋ณด๋ค ๋น ๋ฅด๊ฒ ์ต์๊ฐ, ์ต๋๊ฐ์ ๊ตฌํ ์ ์๋ค.
๐ฉ ํ์์์ ๋ถ๋ชจ-์์ ๊ด๊ณ
์ค๋ฅธ์ชฝ ์์์ ์ธ๋ฑ์ค = (๋ถ๋ชจ์ ์ธ๋ฑ์ค) * 2 + 1
์ผ์ชฝ ์์์ ์ธ๋ฑ์ค = (๋ถ๋ชจ์ ์ธ๋ฑ์ค) * 2
๋ถ๋ชจ์ ์ธ๋ฑ์ค = (์์์ ์ธ๋ฑ์ค) / 2
๐ ์ฐ์ ์์ ํ
๋๊ธฐ ๋ฆฌ์คํธ์์ ํญ์ ์ฐ์ ์์๊ฐ ๋์ ์ฌ๋์ด ๋จผ์ ์๋น์ค๋ฅผ ๋ฐ๋ ๊ตฌ์กฐ
๋ฐ์ดํฐ ๊ตฌ์กฐ์ ํ๋๋ก์ ๋ฐ์ดํฐ๋ฅผ ์์ ๋กญ๊ฒ ์ถ๊ฐํ ์ ์๋ค. ๋ฐ๋ฉด ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ ๋๋ ์ต์๊ฐ๋ถํฐ ์์๋๋ก ์ ํ
ํ์ ํํํ๋ ํธ๋ฆฌ ๊ตฌ์กฐ์์ ๊ฐ ์ ์ ์ '๋ ธ๋(node)'๋ผ ํ๋ค.
๋ ธ๋๋ ์ต๋ 2๊ฐ์ ์์์ ๊ฐ๋๋ค. ์์์๋ถํฐ ์ฑ์์ง๋ฉฐ, ๊ฐ์ ์ธต์์๋ ์ผ์ชฝ๋ถํฐ ์ฑ์์ง๋ค.
๋ํ, ํธ๋ฆฌ ๋ชจ์์ ๋ฐ์ดํฐ์ ๊ฐ์์ ์ํด ์ ํด์ง๋ค.
๐ ์ด์งํ์ํธ๋ฆฌ(BST, Binary Search Tree)
๐ฉ ์ด์ง ํ์ + ์ฐ๊ฒฐ๋ฆฌ์คํธ
์ด์ง ํ์์ ํจ์จ์ ์ธ ํ์ ๋ฅ๋ ฅ์ ์ ์ง + ๋น๋ฒํ ์๋ฃ์ ์ ๋ ฅ๊ณผ ์ญ์ ๋ฅผ ๊ฐ๋ฅํ๋๋ก ํ๋ค.
๐ฉ ๊ฐ ๋ ธ๋์์ ์ผ์ชฝ์ ์์ ๋ ธ๋๋ ํด๋น ๋ ธ๋๋ณด๋ค ์์ ๊ฐ์ผ๋ก, ์ค๋ฅธ์ชฝ์ ์์ ๋ ธ๋๋ ํด๋น ๋ ธ๋๋ณด๋ค ํฐ ๊ฐ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
๐ ํ๊ณผ ์ด์งํ์ํธ๋ฆฌ
๐ฉ ๊ณตํต์
๋ชจ๋ ์์ ์ด์งํธ๋ฆฌ
๐ฉ ์ฐจ์ด์
์ต๋ํ : ๊ฐ ๋ ธ๋์ ๊ฐ์ด ์์ ๋ ธ๋๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๋ค.
์ด์ง ํ์ ํธ๋ฆฌ : ๊ฐ ๋ ธ๋์ ์ผ์ชฝ ์์์ ๋ ์์ ๊ฐ์ผ๋ก, ์ค๋ฅธ์ชฝ ์์์ ๋ ํฐ ๊ฐ์ผ๋ก ์ด๋ฃจ์ด์ ธ์๋ค.
์ผ์ชฝ ์์ ๋ ธ๋ < ๋ถ๋ชจ ๋ ธ๋ < ์ค๋ฅธ์ชฝ ์์ ๋ ธ๋
ํ์ ์ผ/์ค๋ฅธ์ชฝ ๋ ธ๋์ ๊ฐ์ ํฌ๊ธฐ๋ ์๊ด์๋ค.
ํ์ ์ต๋/์ต์ ๊ฒ์์, ์ด์ง ํ์ ํธ๋ฆฌ๋ ํ์์ ์ํ ๊ตฌ์กฐ
๐ฉ ์ฝ์
์์ ์ด์งํธ๋ฆฌ์ด๊ธฐ ๋๋ฌธ์, ์ฝ์ ํ ๋ ธ๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ผ์ชฝ ์ตํ๋จ๋ถ ๋ ธ๋๋ถํฐ ์ฑ์์ง๋ค.
๋ถ๋ชจ์ ํฌ๊ธฐ ๋น๊ตํ๋ฉด์ ์์น ๋ณ๊ฒฝ ๋ฐ ์ฝ์ ํ๋ค.
๐ฉ ์ญ์
ํ ์๋ฃ๊ตฌ์กฐ์ ๋ชฉํ๋ ์ต๋๊ฐ์ด๋ ์ต์๊ฐ์ ์์๋ด๋ ๊ฒ
๋๋ฌธ์ ๋ฐ์ดํฐ๊ฐ ์ญ์ ๋๋ค๋ฉด ๊ฐ์ฅ ํฐ ๊ฐ์ธ ๋ถ๋ชจ ๋ ธ๋์ ๊ฐ์ด ์ญ์ ๋๋ค.
๋ถ๋ชจ ๋ ธ๋๊ฐ ๋น์ด์์ผ๋ฏ๋ก, ๊ฐ์ฅ ์ตํ๋จ๋ถ ๋ ธ๋๋ฅผ ๋ฃจํธ๋ก ์ฎ๊ธด๋ค.
๋ถ๋ชจ ๋ ธ๋์ธ 8๋ณด๋ค ๊ฐ์ด ํฐ ์์ ๋ ธ๋๊ฐ ์๋์ง ๋น๊ตํ๋ค.
๐ ์ผ์ชฝ/์ค๋ฅธ์ชฝ ์์ ๋ ธ๋ ๋ชจ๋ ๋ถ๋ชจ ๋ ธ๋๋ณด๋ค ํด ๊ฒฝ์ฐ,
์ผ์ชฝ ์์ ๋ ธ๋์ ์ค๋ฅธ์ชฝ ์์ ๋ ธ๋๋ฅผ ๋น๊ตํ์ฌ, ๋ ํฐ ์์ ๋ ธ๋์ ๋ถ๋ชจ ๋ ธ๋์ ์์น๋ฅผ ๋ฐ๊พผ๋ค.
๐ ์ผ์ชฝ/์ค๋ฅธ์ชฝ ์์ ๋ ธ๋ ์ค ํ๋๋ง ๋ถ๋ชจ ๋ ธ๋๋ณด๋ค ํด ๊ฒฝ์ฐ,
๋ ์ค์ ๋ถ๋ชจ ๋ ธ๋๋ณด๋ค ํฐ ์์ ๋ ธ๋์ ๋ถ๋ชจ ๋ ธ๋์ ์์น๋ฅผ ๋ฐ๊พผ๋ค.
'๐ฉโ๐ป ํ๋ก๊ทธ๋๋ฐ > โจ ์๋ฃ๊ตฌ์กฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํธ๋ฆฌ(Tree) (0) | 2024.04.13 |
---|---|
๊ทธ๋ํ(Graph) | ์์ ์ ๋ ฌ | ์ฐ๊ฒฐ ์ฑ๋ถ (0) | 2024.04.13 |
ํด์ ํ ์ด๋ธ(Hash Table) (1) | 2024.04.12 |
์คํ(Stack) (0) | 2024.04.12 |
ํ(Queue) (1) | 2024.04.12 |