728x90
๋ฐ์ํ
๐ฏ Binary Search Tree
Binary Search Tree(BST, ์ด์ง ํ์ ํธ๋ฆฌ)๋ ์ด์ง ํธ๋ฆฌ์ ์ผ์ข ์ผ๋ก, ๋ชจ๋ ๋ ธ๋์ ์ผ์ชฝ ์๋ธํธ๋ฆฌ์๋ ํด๋น ๋ ธ๋๋ณด๋ค ์์ ๊ฐ์ ๊ฐ์ง ๋ ธ๋๋ค์ด, ๋ชจ๋ ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ์๋ ํด๋น ๋ ธ๋๋ณด๋ค ํฐ ๊ฐ์ ๊ฐ์ง ๋ ธ๋๋ค์ด ์ ์ฅ๋์ด ์๋ ์ด์ง ํธ๋ฆฌ์ ๋๋ค.
Binary Search Tree์ ํน์ง
- ์ด์ง ํธ๋ฆฌ์ ๊ตฌ์กฐ๋ฅผ ๋ฐ๋ฅด๊ณ ์์ผ๋ฏ๋ก, ๋ชจ๋ ๋ ธ๋์ ์์ ๋ ธ๋์ ์๊ฐ ์ต๋ 2๊ฐ์ ๋๋ค.
- ๋ชจ๋ ์ผ์ชฝ ์๋ธํธ๋ฆฌ์ ๋ ธ๋๋ค์ ํด๋น ๋ ธ๋๋ณด๋ค ์์ ๊ฐ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ๋ชจ๋ ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ์ ๋ ธ๋๋ค์ ํด๋น ๋ ธ๋๋ณด๋ค ํฐ ๊ฐ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
- ์ค๋ณต๋ ๊ฐ์ ๊ฐ์ง๋ ๋ ธ๋๋ฅผ ํ์ฉํ์ง ์์ต๋๋ค.
Binary Search Tree์ ์ฃผ์ ์ฐ์ฐ
- ํ์(Search)
- BST์์ ํน์ ๊ฐ์ ๊ฐ์ง ๋ ธ๋๋ฅผ ์ฐพ๋ ์ฐ์ฐ์ ๋๋ค. ํด๋น ๊ฐ์ด BST์ ์๋ ๊ฒฝ์ฐ NULL์ ๋ฐํํฉ๋๋ค. ์ด ์ฐ์ฐ์ ์๊ฐ ๋ณต์ก๋๋ O(log n)์ ๋๋ค.
- ์ฝ์
(Insertion)
- BST์ ์๋ก์ด ๋ ธ๋๋ฅผ ์ฝ์ ํ๋ ์ฐ์ฐ์ ๋๋ค. ์ด ์ฐ์ฐ์ ์๊ฐ ๋ณต์ก๋๋ ํ์๊ณผ ๊ฐ์ O(log n)์ ๋๋ค.
- ์ญ์ (Deletion)
- BST์์ ํน์ ๊ฐ์ ๊ฐ์ง ๋ ธ๋๋ฅผ ์ญ์ ํ๋ ์ฐ์ฐ์ ๋๋ค. ์ญ์ ํ ๋ ธ๋์ ์์ ๋ ธ๋์ ๋ฐ๋ผ ์ฐ์ฐ ๋ฐฉ๋ฒ์ด ๋ฌ๋ผ์ง๋๋ค. ์ด ์ฐ์ฐ์ ์๊ฐ ๋ณต์ก๋๋ O(log n)์ ๋๋ค.
Binary Search Tree ์ฅ๋จ์
โญ๏ธ Binary Search Tree ์ฅ์
- ๊ฒ์ ์๊ฐ์ด ๋น ๋ฅด๋ค
- ์ด์ง ํ์ ํธ๋ฆฌ์ ํน์ฑ์ ํ์ ์๊ฐ์ด O(log n)์ผ๋ก ๋งค์ฐ ๋น ๋ฆ ๋๋ค.
- ์ฝ์
๊ณผ ์ญ์ ๊ฐ ์ฉ์ดํ๋ค
- BST๋ ์ฝ์ ๊ณผ ์ญ์ ๊ฐ ๋ค๋ฅธ ์๋ฃ๊ตฌ์กฐ์ ๋นํด ์ฉ์ดํฉ๋๋ค.
- ๋ฐ์ดํฐ์ ์ค๋ณต์ ํ์ฉํ์ง ์๋๋ค
- ๋ฐ์ดํฐ์ ์ค๋ณต์ ํ์ฉํ์ง ์์ผ๋ฏ๋ก ๋ฐ์ดํฐ์ ์ ์ผ์ฑ์ด ๋ณด์ฅ๋ฉ๋๋ค.
๐๏ธ Binary Search Tree ๋จ์
- ํธ๋ฆฌ์ ๋ถ๊ท ํ
- ์ฝ์ ๊ณผ ์ญ์ ๊ฐ ๋น๋ฒํ๊ฒ ์ผ์ด๋๋ ๊ฒฝ์ฐ, ํธ๋ฆฌ์ ๊ท ํ์ด ๊นจ์ ธ ๊ฒ์ ์๊ฐ์ด O(n)์ผ๋ก ์ฆ๊ฐํ ์ ์์ต๋๋ค.
- ์ต์
์ ๊ฒฝ์ฐ ์๊ฐ ๋ณต์ก๋๊ฐ O(n)์ด ๋ ์ ์๋ค
- BST๊ฐ ๊ท ํ์ ์ ์งํ์ง ๋ชปํ ๊ฒฝ์ฐ, ์ต์ ์ ๊ฒฝ์ฐ ์๊ฐ ๋ณต์ก๋๊ฐ O(n)์ผ๋ก ์ฆ๊ฐํ ์ ์์ต๋๋ค.
728x90
๋ฐ์ํ
'์๋ฃ๊ตฌ์กฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๋ฃ๊ตฌ์กฐ] B-Tree & B+Tree (0) | 2023.03.27 |
---|---|
[์๋ฃ๊ตฌ์กฐ] Hash (0) | 2023.03.27 |
[์๋ฃ๊ตฌ์กฐ] Heap (0) | 2023.03.27 |
[์๋ฃ๊ตฌ์กฐ] LinkedList (0) | 2023.03.26 |
[์๋ฃ๊ตฌ์กฐ] Trie (0) | 2023.03.26 |