Multiway Search Tree (๋ค์ ํ์ ํธ๋ฆฌ) / m-way Search Tree (m ๋ถ๊ธฐ ํ์ ํธ๋ฆฌ) ํ ๋
ธ๋๊ฐ ๊ฐ์ง ์ ์๋ key์ ๊ฐ์ด ์ต๋ m-1๊ฐ์ด๊ณ ๊ฐ์ง ์ ์๋ Child์ ์๊ฐ m๊ฐ์ธ ํธ๋ฆฌ๋ฅผ Mulituway Search Tree๋ผ ํฉ๋๋ค. ์ด์ง ํธ๋ฆฌ : 2-way search tree AVL ํธ๋ฆฌ : 2-way search tree 2-3 ํธ๋ฆฌ : 3-way search tree ์ ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. m-way Search Tree๋ ๋ค์์ ๋ง์กฑํ๋ ๊ฒ์ ํธ๋ฆฌ์
๋๋ค. 1. Leaf Node๋ฅผ ์ ์ธํ ๋ชจ๋ ๋
ธ๋๋ m๊ฐ ์ดํ์ ์๋ธ ํธ๋ฆฌ๋ฅผ ๊ฐ์ง๋๋ค. 2. k๊ฐ์ ์์ ๋
ธ๋๋ฅผ ๊ฐ๋ ๋
ธ๋๋, k-1๊ฐ์ ์์(key)๋ฅผ ๊ฐ์ง๋๋ค. 3. ๊ฐ ๋
ธ๋์ key๋ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋์ด ์..
๐ฅ Computer Science/์๋ฃ๊ตฌ์กฐ
2-3 Tree 2-3ํธ๋ฆฌ๋ ๊ฒ์ ํธ๋ฆฌ์ด์ง๋ง BST๋ ์๋๋๋ค. ์ฐจ์๊ฐ 3์ธ ๋
ธ๋๊ฐ ์กด์ฌํ ์ ์์ผ๋ฏ๋ก, Binary๊ฐ ์๋๊ธฐ ๋๋ฌธ์
๋๋ค. 2-3 Tree๋ ํธ๋ฆฌ์ ๋์ด๊ฐ ๊ท ํ์ ์ด๋ฃจ๋ฉฐ ๋ด๋ถ๋
ธ๋์ ์ฐจ์๊ฐ 2 ๋๋ 3์ธ ๊ท ํ ํ์ํธ๋ฆฌ์
๋๋ค. 2-3 Tree ์กฐ๊ฑด 2-3 Tree์๋ Internal Node์ External Node์ ๊ฐ๋
์ด ์กด์ฌํฉ๋๋ค. Internal Node(๋ด๋ถ๋
ธ๋)๋ Key๊ฐ ๋ค์ด์๋ ๋ด๋ถ ๋
ธ๋์ด๋ฉฐ, External Node(์ธ๋ถ๋
ธ๋)๋ ๋ฐ์ดํฐ๊ฐ ๋ค์ด์์ง ์์ ๋
ธ๋๋ก์จ Internal Node์ Leaf Node์ ์์์ผ๋ก ์กด์ฌํ๋ ๊ฐ์์ ๋
ธ๋์
๋๋ค. 2-3 Tree์์ ๊ฐ๊ฐ์ ๋ด๋ถ ๋
ธ๋๋ 2-Node ์ด๊ฑฐ๋ 3-Node ์
๋๋ค. ์ค๋ณต๋ Key๋ ํ์ฉํ์ง ์์ต๋๋ค. 2-Node๋ 1..
BST์ ๋ฌธ์ ์ ์ผ๋ฐ์ ์ธ BST(์ด์ง ๊ฒ์ ํธ๋ฆฌ)๋ ๋ฐ์ดํฐ๊ฐ ์ฝ์
๋๋ ์์์ ๋ฐ๋ผ ํ์ชฝ์ผ๋ก ํธํฅ๋๋ ํํ๋ก ํธ๋ฆฌ๊ฐ ํ์ฑ๋ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์
๋ ฅ์ด์ด 50 -> 30 -> 100 -> 20 -> 150 ์ธ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๊ทธ๋ฌ๋ ์
๋ ฅ์ด์ด 20 -> 30 -> 50 -> 100 -> 150 ์ธ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ด๋ ๊ฒ BST๋ ํธ๋ฆฌ์ ๋์ด๋ฅผ $log(n)$ ์ผ๋ก ๋ณด์ฅ๋ฐ์ง ๋ชปํ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค. ํธ๋ฆฌ์์์ ์ฑ๋ฅ์ ํธ๋ฆฌ์ ๋์ด์ ์ฐ๊ด๋์ด ์์ต๋๋ค. ์ฆ ํธ๋ฆฌ์ ๋์ด๊ฐ $log(n)$์ ๋ณด์ฅ๋ฐ์ง ๋ชปํ๋ค๋ฉด, BST์ ์ฝ์
๊ณผ ์ญ์ , ๊ฒ์์ ์ฐ์ฐ ์ญ์ ์๊ฐ๋ณต์ก๋ $O(log(n))$์ ๋ณด์ฅ๋ฐ์ง ๋ชปํฉ๋๋ค. AVL ํธ๋ฆฌ AVL ํธ๋ฆฌ๋ ์ด์ง ๊ฒ์ ํธ๋ฆฌ(BST)์ ํ๊ฐ์ง ์ข
๋ฅ๋ก์จ ์ค์ค๋ก ๋์ด์ ๊ท ํ์ ์ก๋..
๋ค์ด๊ฐ๊ธฐ์ ์์ ํด์๊ฐ ์ด๋์ ์ฐ์ด๋์ง ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ์ ํ๋ธ๋ฅผ ์์๋ก ์๊ฐํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ์ ๊ฐ ์ด๋ค ์ฌ๋์ ๋์์์ ๊ทธ๋๋ก ์ ์ฑ๋์ ์ฌ๋ฆฌ๋ ค๊ณ ํ๋ค๋ฉด, ๊ทธ ์๊ฐ ๋ฐ๋ก ์ ํ๋ธ์์ ์ค๋ณต๋๋ ๋์์์ด๋ผ๋ ์๋ฌ ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ด์ค๋๋ค. ๋์์์ ํฌ๊ธฐ๋ ๋งค์ฐ ํฌ๊ณ , ๊ทธ ์๋ ๋งค์ฐ ๋ง์ต๋๋ค. ๊ทธ๋ ๊ฒ ๋ง์ ๋์์ ์ค์์ ์ด๋ป๊ฒ ์ค๋ณต๋๋ ๋์์์ธ์ง๋ฅผ ๋น ๋ฅด๊ฒ ํ๋จํ ์ ์์๊น์? ์์ผ๋ก ์ดํด๋ณผ ์๋ฃ๊ตฌ์กฐ์ธ ํด์ํ
์ด๋ธ์ด ๋ฐ๋ก ์ด๊ฒ์ ๊ฐ๋ฅํ๊ฒ ๋ง๋ค์ด์ค๋๋ค. Hash Function (ํด์ ํจ์) ํด์ ํจ์ (Hash Function) ๋๋ ํด์ ์๊ณ ๋ฆฌ์ฆ์ ์์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ก ๋งคํ(๋ณํ)ํ๋ ํจ์์
๋๋ค. ํด์ ํ
์ด๋ธ์ ๋ฐฐ์ด์
๋๋ค. ๋ฐ๋ผ์ ์ธ๋ฑ์ค๋ฅผ ํตํด ์ ๊ทผํ ๋์๋ O(1)์ ์๊ฐ๋ณต์ก๋๋ก ๋งค์ฐ ๋น ๋ฅด๊ฒ ..
Deap์ด๋? ์์ ์ด์ง ํธ๋ฆฌ(Complete Binary Tree)์ด๋ฉฐ, ๋น์ด์๊ฑฐ๋ ๋ค์์ ๋ง์กฑ์ํค๋ ์๋ฃ๊ตฌ์กฐ์
๋๋ค. 1. Root ๋
ธ๋๋ ์๋ฌด๋ฐ ์์๋ฅผ ๊ฐ์ง๊ณ ์์ง ์์ต๋๋ค. 2. ์ผ์ชฝ ์๋ธํธ๋ฆฌ๋ min-heap ์
๋๋ค. 3. ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ๋ max-heap ์
๋๋ค. ๋ง์ฝ ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ๊ฐ ๋น์ด์์ง ์์ ๊ฒฝ์ฐ $i_{left}$ ๋ฅผ ์ผ์ชฝ ์๋ธํธ๋ฆฌ์ ์์์ ์์๋ผ ํ๊ฒ ์ต๋๋ค. $j_{right}$ ๋ฅผ $i_{left}$ ์ ๋์๋๋ ์ฐ์ธก ์๋ธํธ๋ฆฌ์ ์์๋ผ๊ณ ํ๊ฒ ์ต๋๋ค. ๋ง์ฝ $j_{right}$ ๊ฐ ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ, $j_{right}$ ์ ์์น๋ $i_{left}$ ์ ๋ถ๋ชจ(parent)๋
ธ๋์ ๋์๋๋max-heap์ ์์๊ฐ ๋ฉ๋๋ค. ํญ์ $i_{left}$ ๋ $j_{right}$ ๋ณด๋ค ์๊ฑฐ๋..
์ฐ์ ์์ ํ (Priority Queue) ์ฐ์ ์์ ํ๋ ๊ธฐ์กด ํ์ ๋ฌ๋ฆฌ ๊ฐ์ฅ ๋จผ์ ๋ค์ด์จ ์์๊ฐ ๊ฐ์ฅ ๋จผ์ ์ ๊ฑฐ๋์ง ์์ต๋๋ค. ์ฐ์ ์์ ํ์์๋ ์ฐ์ ์์๊ฐ ๊ฐ์ฅ ๋์ ์์๋ถํฐ ์ ๊ฑฐ๋ฉ๋๋ค. ์ฐ์ ์์ ํ์ ๊ตฌํ ์ฐ์ ์์ ํ๋ ๋ค์ํ ๋ฐฉ๋ฒ์ผ๋ก ๊ตฌํ์ด ๊ฐ๋ฅํฉ๋๋ค. ๊ตฌํ ๋ฐฉ๋ฒ ์ฝ์
์ต๋๊ฐ ์ญ์ ์ต์๊ฐ ์ญ์ ์์์์ ์ญ์ (์ฐพ์ ํ) ๊ฒ์ ์ ๋ ฌ๋์ง ์์ ArrayList $$O(1)$$ $$O(n)$$ $$O(n)$$ $$O(n)$$ $$O(n)$$ ์ ๋ ฌ๋์ง ์์ LinkedList $$O(1)$$ $$O(n)$$ $$O(n)$$ $$O(1)$$ $$O(n)$$ ์ ๋ ฌ๋ ArrayList (์ค๋ฆ์ฐจ์) $$O(n)$$ $$O(1)$$ $$O(n)$$ $$O(n)$$ $$O(log\;n)$$ ์ ๋ ฌ๋ LinkedList ..
ํ(Heap)์ด๋? ํ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ ์ด์ง ํธ๋ฆฌ(Complete Binary Tree)์ด๋ฉด์, ์ฑ์ง์ ๋ฐ๋ผ ์ต๋ ํ(Map Heap)๊ณผ, ์ต์ ํ(Min Heap), ๋ ๊ฐ์ง ์ข
๋ฅ๋ก ๋ถ๋ฅ๋ฉ๋๋ค. ์ต๋ ํ (Max Heap) 1. ์์ ์ด์ง ํธ๋ฆฌ(Complete Binary Tree)์ด๋ฉด์ 2. ๊ฐ ๋
ธ๋์ Key ๊ฐ์ด ์์ ๋
ธ๋์ Key ๊ฐ๋ณด๋ค ์์ง ์๋ค. ์ต์ด ํ (Min Heap) 1. ์์ ์ด์ง ํธ๋ฆฌ(Complete Binary Tree)์ด๋ฉด์ 2. ๊ฐ ๋
ธ๋์ Key ๊ฐ์ด ์์ ๋
ธ๋์ Key ๊ฐ๋ณด๋ค ํฌ์ง ์๋ค. ์ฐธ๊ณ ๋ก ๋ฉ๋ชจ๋ฆฌ ์์ ์ค, ๋์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ ๋น๋๋ ์์ญ์ ๋๋ถ๋ถ ํ ์๋ฃ๊ตฌ์กฐ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค. ํ์์์ ์ฝ์
์ต๋ ํ ๊ธฐ์ค์ผ๋ก ์ค๋ช
ํ๊ฒ ์ต๋๋ค. ์ฝ์
ํ๋ ค๋ ๋
ธ๋๋ฅผ ๊ฐ์ฅ ๋ง์ง๋ง์ ์ถ๊ฐํฉ๋..
์ด์ง ๊ฒ์ ํธ๋ฆฌ (Binary Search Tree - BST) ์ด์ง ๊ฒ์ ํธ๋ฆฌ๋ ์ด์งํธ๋ฆฌ(Binary Tree)์ ํ ์ข
๋ฅ์ด๋ฉฐ, ๋น์ด์๊ฑฐ๋ ๋ค์ ์กฐ๊ฑด์ ๋ง์กฑํด์ผ ํฉ๋๋ค. 1. ๋ชจ๋ ์์๋ Key๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ์ด๋ ํ ์์๋ ๋์ผํ ํค๋ฅผ ๊ฐ์ง์ง ์์ต๋๋ค. ์ฆ Key๋ ์ ์ผํฉ๋๋ค. 2. ํธ๋ฆฌ์ ๋ฃจํธ๋ ๋น์ด์์ง ์์ ์ผ์ชฝ ์๋ธํธ๋ฆฌ์ ์๋ Key๋ณด๋ค ํฐ ๊ฐ์ ๊ฐ์ง๋๋ค. 2. ํธ๋ฆฌ์ ๋ฃจํธ๋ ๋น์ด์์ง ์์ ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ์ ์๋ Key๋ณด๋ค ์์ ๊ฐ์ ๊ฐ์ง๋๋ค. 4. ์ผ์ชฝ ์๋ธํธ๋ฆฌ์ ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ๋ ๋๋ค์ ์ด์ง๊ฒ์ํธ๋ฆฌ์
๋๋ค. ์ด์ง ๊ฒ์ ํธ๋ฆฌ๋ AVLํธ๋ฆฌ, 2-3ํธ๋ฆฌ, Bํธ๋ฆฌ, ๋ ๋-๋ธ๋ ํธ๋ฆฌ ๋ฑ, ์์ผ๋ก ๋ฐฐ์ธ ์ฌ๋ฌ ํธ๋ฆฌ๋ค์ ๊ธฐ๋ณธ์ด ๋๋ ์๋ฃ๊ตฌ์กฐ์ด๋ฏ๋ก ํ์คํ๊ฒ ์๊ณ ๋์ด๊ฐ์ผ ํฉ๋๋ค. ์๊ฐ๋ณต์ก๋ ์ด์ง ๊ฒ์ ํธ๋ฆฌ๋..