- ์ด์ง๊ฒ์ํธ๋ฆฌ(Binary Search Tree)
- ์ฌ๋ฌ ๊ฐ์ ํค(key)๋ฅผ ์ ์ฅ
- ๋ค์๊ณผ ๊ฐ์ ์ฐ์ฐ๋ค์ ์ง์ํ๋ ์๋ฃ๊ตฌ์กฐ
INSERT - ์๋ก์ด ํค์ ์ฝ์
SEARTCH - ํค ํ์
DELETE - ํค์ ์ญ์
ex) ์ฌ๋ณผํ ์ด๋ธ
search | insert | delete | ||
๋ฐฐ์ด | ์ ๋ ฌ๋ ๊ฒฝ์ฐ | O(logn) | O(n) | O(n) |
์ ๋ ฌ๋์ง ์์ ๊ฒฝ์ฐ | O(n) | O(1) | O(1) | |
์ฐ๊ฒฐ๋ฆฌ์คํธ | ์ ๋ ฌ๋ ๊ฒฝ์ฐ | O(n) | O(n) | O(1) |
์ ๋ ฌ๋์ง ์์ ๊ฒฝ์ฐ | O(n) | O(1) | O(1) |
- ๋ค์ํ ๋ฐฉ๋ฒ๋ค
- ์ ๋ ฌ๋, ํน์ ์ ๋ ฌ๋์ง ์์ ๋ฐฐ์ด ํน์ ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ
INSERT, SEARCH, DELETE ์ค ์ ์ด๋ ํ๋๋ O(n)
- ์ด์งํ์ํธ๋ฆฌ(Binary Search Tree), ๋ ๋-๋ธ๋ํธ๋ฆฌ(red-black tree), AVL-ํธ๋ฆฌ ๋ฑ์ ํธ๋ฆฌ์ ๊ธฐ๋ฐํ ๊ตฌ์กฐ๋ค
- Direct Address Table, ํด์ฌ ํ ์ด๋ธ ๋ฑ..
- ๊ฒ์ํธ๋ฆฌ
- Dynamic set์ ํธ๋ฆฌ์ ํํ๋ก ๊ตฌํ
- ์ผ๋ฐ์ ์ผ๋ก SEARCH, INSERT, DELETE ์ฐ์ฐ์ด ํธ๋ฆฌ์ ๋์ด(height)์ ๋น๋กํ๋ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง
- ์ด์ง๊ฒ์ํธ๋ฆฌ(Binary Search Tree), ๋ ๋-๋ธ๋ํธ๋ฆฌ(red-black tree), B-ํธ๋ฆฌ ๋ฑ..
- ์ด์ง๊ฒ์ํธ๋ฆฌ(BST : Binary Search Tree)
๊ฐ ๋ ธ๋๋ง๋ค ์ต๋ ๋ ๋ช ์ ์์์ ๊ฐ์ง ์ ์๊ณ , ๋๊ฐ ์ผ์ชฝ ์์์ด๊ณ ์ค๋ฅธ์ชฝ ์์์ธ์ง ๋ช ์๋์ด ์๋ ํธ๋ฆฌ
- ์ํ์ ์ด์ฉํด ํํํ ์ด์งํ์ ์์ฌ์ฝ๋
// SEARCH. x : ๋ฃจํธ๋
ธ๋, k : ์ฐพ๋ ๊ฐ
TREE-SEARCH (x, k){
if x == null or k == key[x] // key[x] : ๋
ธ๋ x์ ์ ์ฅ๋ ๊ฐ
then return x
if k < key[x]
then return TREE-SEARCH(left[x], k)
else return TREE-SEARCH(right[x], k)
}
์๊ฐ๋ณต์ก๋ : O(h), ์ฌ๊ธฐ์์ h๋ ํธ๋ฆฌ์ ๋์ด
- ๋ฐ๋ณต๋ฌธ์ ์ด์ฉํด ํํํ ์ด์งํ์ ์์ฌ์ฝ๋
INTERATIVE-TREE-SEARCH(x, k){
while x != null and k != key[x]
do if k < key[x]
then x // left[x]
else x // right[x]
return x
}
์๊ฐ๋ณต์ก๋ : O(h), ์ฌ๊ธฐ์์ h๋ ํธ๋ฆฌ์ ๋์ด
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
12-1๊ฐ. ๋ ๋๋ธ๋ํธ๋ฆฌ(1) (0) | 2020.11.17 |
---|---|
11-3๊ฐ. ์ด์ง๊ฒ์ํธ๋ฆฌ (Binary Search Tree) (3) | 2020.11.15 |
์ 10๊ฐ ํธ๋ฆฌ์ ์ด์งํธ๋ฆฌ (0) | 2020.11.08 |
9๊ฐ. Java์์์ ์ ๋ ฌ (0) | 2020.11.05 |
10. ํฉ๋ณ์ ๋ ฌ (merge sort) (3) | 2020.10.15 |
๋๊ธ