ํธ๋ฆฌ(Tree)๋ ๊ณ์ธต์ ์ธ ์๋ฃ๋ฅผ ํํํ๋ ๋ฐ ์ด์ฉ๋๋ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค.
์ด์ง ํธ๋ฆฌ(Binary Tree)๋ ๋ชจ๋ ๋ ธ๋๊ฐ ์ต๋ 2๊ฐ์ ์๋ธ ํธ๋ฆฌ๋ฅผ ๊ฐ์ง๊ณ ์๋ ํธ๋ฆฌ๋ฅผ ๋งํ๋ฉฐ, ์๋ธ ํธ๋ฆฌ ๋ํ ๋ชจ๋ ์ด์ง ํธ๋ฆฌ์ ๋๋ค. ์ด์ง ํ์ ํธ๋ฆฌ(Binary Search Tree)๋ ๋ฐ์ดํฐ ํ์์ ์ด์ฉํ๊ธฐ ์ํด ์ด์ง ํธ๋ฆฌ๋ฅผ ์กฐ๊ธ ๋ณํํ ๊ฒ์ผ๋ก, ๋ ธ๋์ key-value ํํ๋ก ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ฉฐ key๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ๋์ด ์์ต๋๋ค. ์ด์ง ํ์ ํธ๋ฆฌ๋ ๋ณดํต์ ๊ฒฝ์ฐ O(log2N)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง์ง๋ง ํธํฅ๋ ์ด์ง ํ์ ํธ๋ฆฌ์ ๊ฒฝ์ฐ O(N)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค.
๋์ด ๊ท ํ ์ด์ง ํธ๋ฆฌ(AVL Tree)๋ ์ด์ง ํธ๋ฆฌ์ ๋์ด ๋ถ๊ท ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์ ๋์จ ์๋ฃ๊ตฌ์กฐ๋ก, ๋ ์๋ธ ํธ๋ฆฌ์ ๋์ด ์ฐจ์ด๊ฐ 2 ์ด์์ผ ์ ์๋ค๋ ํน์ง์ ๊ฐ์ง๋๋ค. ๋ฐ๋ผ์ O(log2N)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋๋ค.
- https://kpuls.tistory.com/39
- https://en.wikipedia.org/wiki/AVL_tree
- https://en.wikipedia.org/wiki/Binary_search_tree
- https://stackoverflow.com/questions/2734692/avl-tree-vs-b-tree
ํธ๋ฆฌ๋ ๊ทธ๋ํ์ ์๋ธ์ ์ ๋๋ค.
ํธ๋ฆฌ๋ ์ผ๋ฐ ๊ทธ๋ํ์ ๋ค๋ฅด๊ฒ
- ๋ ๊ฐ์ ๋ ธ๋ ์ฌ์ด์ ๋ฑ ํ๋์ ๊ฐ์ ์ ๊ฐ์ง๋๋ค.
- ์ฌ์ดํด์ด ์กด์ฌํ์ง ์๋ ๋ฐฉํฅ ๊ทธ๋ํ์ ๋๋ค.
- ๋ถ๋ชจ-์์์ ๊ณ์ธต ๊ด๊ณ๋ฅผ ๊ฐ์ง๋๋ค.
์ง์ ์ ์ผ๋ก AVL Tree๋ฅผ ์ฌ์ฉํด๋ณธ ๊ฒฝํ์ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.