Array์ LinkedList์ ์ฐจ์ด์ ์ ์ค๋ช ํ์ธ์
์ธ๋ฑ์ค๋ฅผ ํตํด O(1)์ ์๊ฐ๋ณต์ก๋๋ก ์ ๊ทผํ ์ ์์ต๋๋ค.
๋ฐ๋ฉด Linkedlist๋ sequential access๋ฅผ ์ง์ํฉ๋๋ค. ์ํ๋ ์์์ ์ ๊ทผํ ๋ ์์ฐจ์ ์ผ๋ก ๊ฒ์ํ๋ฉฐ ์ฐพ์์ผํด์ ์๊ฐ๋ณต์ก๋๋ O(n)์ด ๋ฉ๋๋ค.
์ฝ์ /์ญ์ ์ ๊ฒฝ์ฐ ๋ฐฐ์ด์ O(n)์ ์๊ฐ๋ณต์ก๋๊ฐ ๊ฑธ๋ฆฌ๊ณ , ๋งํฌํธ๋ฆฌ์คํธ๋ O(1)์ด ์์๋ฉ๋๋ค.
์ ์ฅ ๋ฐฉ์๋ ๋ฐฐ์ด์์ ์์๋ค์ ์ธ์ ํ ๋ฉ๋ชจ๋ฆฌ ์์น์ ์ฐ์ด์ด ์ ์ฅ๋ฉ๋๋ค. ๋ฐ๋ฉด ๋งํฌํธ๋ฆฌ์คํธ์์๋ ์๋ก์ด ์์์ ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ ์์น ์ฃผ์๊ฐ ๋งํฌํธ๋ฆฌ์คํธ์ ์ด์ ์์์ ์ ์ฅ๋ฉ๋๋ค.
๋ฐฐ์ด์์ ๋ฉ๋ชจ๋ฆฌ๋ ๋ฐฐ์ด์ด ์ ์ธ๋์๋ง์ compile time์ ํ ๋น๋์ด ์ง๋๋ค. (์ ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น)
๋งํฌํธ๋ฆฌ์คํธ์์ ์๋ก์ด ๋ ธ๋๊ฐ ์ถ๊ฐ๋ ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ runtime์ ํ ๋นํฉ๋๋ค. (๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น)
๋ฐฐ์ด์ stack ์น์ ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ด ์ด๋ฃจ์ด์ง๊ณ ๋งํฌํธ ๋ฆฌ์คํธ๋ heap ์น์ ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ด ์ด๋ฃจ์ด์ง๋๋ค.
array(list)์ ๊ฐ์ฅ ํฐ ํน์ง๊ณผ ๊ทธ๋ก ์ธํด ๋ฐ์ํ๋ ์ฅ์ ๊ณผ ๋จ์ ์ ๋ํด ์ค๋ช ํ์ธ์.
array
๋ฐฐ์ด์ ๊ฐ์ฅ ํฐ ํน์ง์ ์์ฐจ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค๋ ์ ์ ๋๋ค.
๋ฐ์ดํฐ์ ์์๊ฐ ์๊ธฐ ๋๋ฌธ์ 0๋ถํฐ ์์ํ๋ ์ธ๋ฑ์ค๊ฐ ์กด์ฌํ๋ฉฐ, ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํด ํน์ ์์๋ฅผ ์ฐพ๊ณ ์กฐ์์ด ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ด array์ ์ฅ์ ์ ๋๋ค.
๋ฐ๋ฉด์ ์ด์ ๋ฐ๋ฅธ ๋จ์ ๋ ์กด์ฌํ๋๋ฐ, ์์ฐจ์ ์ผ๋ก ์กด์ฌํ๋ ๋ฐ์ดํฐ์ ์ค๊ฐ์ ์์๊ฐ ์ฝ์ ๋๊ฑฐ๋ ์ญ์ ๋๋ ๊ฒฝ์ฐ ๊ทธ ๋ค์ ๋ชจ๋ ์์๋ค์ ํ์นธ์ฉ ๋ฐ๊ฑฐ๋ ๋น๊ฒจ์ค์ผํ๋ ๋จ์ ์ด ์์ต๋๋ค.
์ด๋ฐ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ ์์์ ์ด๋ฃจ์ด์ง๋ ์์ ์ด ๋ค๋ฅธ ์๋ฃ๊ตฌ์กฐ์ ๋นํด ์ปค์ง๊ธฐ ๋๋ฌธ์ ๋ฐฐ์ด์ ์ ๋ณด๊ฐ ์์ฃผ ์ญ์ ๋๊ฑฐ๋ ์ถ๊ฐ๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ด๊ธฐ์๋ ์ ์ ์น ์์ต๋๋ค.
list
๋ฆฌ์คํธ๋ ์์๋๋ก ์ ์ฅํ๋ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค.
๊ตฌํ ๋ฐฉ์์ ๋ฐ๋ผ ํฌ๊ฒ array list์ linked list๋ก ๋๋์ด์ง๋๋ค.
array list
๋ฐฐ์ด์ ์ด์ฉํ์ฌ ๋ฆฌ์คํธ๋ฅผ ๊ตฌํํ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
๋ฐ๋ผ์ ๊ฐ์ฅ ํฐ ํน์ง์ ๋ฐฐ์ด๊ณผ ๊ฐ์ด ์์ฐจ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค๋ ์ ์ ๋๋ค.
์ธ๋ฑ์ค๋ฅผ ์ด์ฉํด์ ํน์ ์์์ ์ ๊ทผ์ด ๋น ๋ฅด๋ค๋ ์ฅ์ ์ด ์๊ณ ๋ฐ์ดํฐ์ ์ถ๊ฐ์ ์ญ์ ๊ฐ ๋๋ฆฌ๋ค๋ ๋จ์ ์ด ์์ต๋๋ค.
๋ํ ๋ฆฌ์คํธ์ ํฌ๊ธฐ๋ณด๋ค ์ ์ฅํ ๋ฐ์ดํฐ์ ์์ด ๋ง์ ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ์ด์ฆ๋ฅผ ๋ค์ ์กฐ์ ํด์ผํ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ์๋ก์ด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐพ์ ๋ณต์ ํด์ผํ๋ฏ๋ก ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฝ๋๋ค.
linked list
๊ฐ์ฅ ํฐ ํน์ง์ ๊ฐ ๋ ธ๋์ ๋ค์ ๋ ธ๋์ ์ฃผ์๋ฅผ ์ ์ฅํ๋ค๋ ์ ์ ๋๋ค.
๊ณ ์ ๋ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง ์๊ธฐ ๋๋ฌธ์ ๋์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค. ๋ํ ์ฝ์ /์ญ์ ์ฐ์ฐ ์ O(1)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ๋ ์ฅ์ ์ด ์์ต๋๋ค.
๋ฐ๋ฉด์ ํน์ ์์น์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ ๋ ์์ฐจ์ ์ผ๋ก ๊ฒ์ํ์ฌ ์ฐพ์์ผํ๋ฏ๋ก O(n)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ๋ ๋จ์ ์ด ์์ต๋๋ค.
array๋ฅผ ์ ์ฉ์ํค๋ฉด ์ข์ ๋ฐ์ดํฐ์ ์๋ฅผ ๊ตฌ์ฒด์ ์ผ๋ก ๋ค์ด์ฃผ์ธ์. ๊ตฌ์ฒด์ ์์์ ํจ๊ป array๋ฅผ ์ ์ฉํ๋ฉด ์ข์ ์ด์ , ๊ทธ๋ฆฌ๊ณ array๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์ด๋ป๊ฒ ๋๋์ง ํจ๊ป ์์ ํด์ฃผ์ธ์.
๋ฌ ๋ณ ์ฃผ์ ์ฐจํธ ๋ฐ์ดํฐ๊ฐ ์์ต๋๋ค.
๋ฌ ๋ณ ์ฃผ์ ์ฐจํธ์ ๋ํ ๋ฐ์ดํฐ๋ ์์๊ฐ ์ค๊ฐ์ ์๋กญ๊ฒ ์ถ๊ฐ๋๊ฑฐ๋ ์ญ์ ๋๋ ์ ๋ณด๊ฐ ์๋๋ฉฐ, ๋ ์๋ณ๋ก ์ฃผ์ ๊ฐ๊ฒฉ์ด ์ฐจ๋ก๋๋ก ์ ์ฅ๋์ด์ผ ํ๋ ๋ฐ์ดํฐ ์ ๋๋ค.
์์๊ฐ ์ค์ํ ๋ฐ์ดํฐ์ด๋ฏ๋ก ๋ฐฐ์ด๊ณผ ๊ฐ์ด ์์๋ฅผ ๋ณด์กดํด์ฃผ๋ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์์๊ฐ ์๋ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ๋ ์ง๋ณ ์ฃผ์ ๊ฐ๊ฒฉ์ ํ์ธํ๊ธฐ ์ด๋ ต๊ณ , ๋งค๋ฒ ์ ์ฒด ์๋ฃ๋ฅผ ์ฝ์ด ๋ค์ด๊ณ ๋น๊ตํด์ผ ํ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
BST์ binary tree์ ๋ํด์ ์ค๋ช ํ์์ค.
์ค์ ์ํ ์ฝ๋๋ฅผ ์์ฑํด๋ณด์์ค.
full binary tree์ complete binary tree์ ํน์ง์ ๋งํ์์ค.
ํธ๋ฆฌ์ ์ ์ ์ต์ 3๊ฐ์ง๋ฅผ ๋งํ์์ค.
Stack, Queue, LinkedList์ ์ฐจ์ด์ ์ ์ค๋ช ํ์ธ์
Stack์ ๋ํด ์ค๋ช ํ์ธ์
Queue์ ๋ํด ์ค๋ช ํ์ธ์
Stack Overflow์ ๋ํด ์ค๋ช ํด๋ณด์ธ์
Priority Queue์ ๋์ ์๋ฆฌ์ ๋ํด์ ์ค๋ช ํ์์ค.
Heap์ ์ข ๋ฅ์ ๊ฐ๊ฐ์ ํน์ง์ ์ค๋ช ํ์์ค.
Max Heap์์์ Heapify ๊ณผ์ ์ ์ค๋ช ํ์์ค.
red black tree์ ์ ์, ์ฑ์ง 4๊ฐ์ง๋ฅผ ๋งํ์์ค
recoloring๊ณผ restructing์ ์๊ฐ ๋ณต์ก๋์ ํจ๊ป ์ค๋ช ํ์์ค
hash์์ red-black ํธ๋ฆฌ๊ฐ ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ฐ, ์ฌ์ฉํ๋ ์ด์ ์ ์ธ์ ์ฌ์ฉํ๋์ง ์ค๋ช ํ์์ค.
ํด์ ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ณผ์ ์ ์ค๋ช ํด๋ณด์ธ์
ํด์ ํจ์๋ฅผ ํตํด ๋ฐ์ดํฐ์ key๊ฐ์ผ๋ก ํด์๊ฐ์ ์ป์ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ์ป์ ๋ฐ์ดํฐ์ ํด์๊ฐ์ ํด์ bucket์ index๋ก ์ฌ์ฉ๋๊ณ , ํด๋น index์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ฉ๋๋ค.
ํด์ ์ถฉ๋๊ณผ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ์์ ๋ํด ์ค๋ช ํด๋ณด์ธ์
ํด์ ํจ์๋ ์์ ํฌ๊ธฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ณ ์ ํฌ๊ธฐ์ ๊ฐ์ผ๋ก ๋งคํํ๋๋ฐ ์ฌ์ฉ๋๋ ํจ์์ ๋๋ค. ์์ ํฌ๊ธฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ณ ์ ํฌ๊ธฐ์ ํด์๊ฐ์ผ๋ก ๋ณํํ๋ ๊ณผ์ ์์ ์๋ก ๋ค๋ฅธ ๋ฐ์ดํฐ๊ฐ ๋์ผํ ํด์๊ฐ์ ๊ฐ๋ ํด์ ์ถฉ๋์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
ํด์ ์ถฉ๋์ ํด๊ฒฐํ๋๋ฐ์ Open Addressing, Seperate Chaining ๋ฐฉ์์ด ์ฌ์ฉ๋ฉ๋๋ค.
Open Addressing์ ํด์ ์ถฉ๋์ด ๋ฐ์ํ๋ฉด ๋น์ด์๋ bucket์ ์ฐพ์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ๋ ๋ฐฉ์์ ๋๋ค. ๋น์ด์๋ bucket์ ์ฐพ๋ ๋ฐฉ์์๋ linear probing, quadratic probing, double hashing ์ด ์์ต๋๋ค.
linear probing์ ํด์ ์ถฉ๋์ด ๋ฐ์ํ ์์น๋ก๋ถํฐ ๊ณ ์ ํญ๋งํผ ์ด๋ํ๋ฉด์ ๋น์ด์๋ bucket์ ์ฐพ๋ ๋ฐฉ์์ ๋๋ค. quadratic probing์ ํด์ ์ถฉ๋์ด ๋ฐ์ํ ์์น๋ก๋ถํฐ n^2 ๋งํผ ์ด๋ํ๋ฉด์ ๋น์ด์๋ bucket์ ์ฐพ๋ ๋ฐฉ์์ ๋๋ค. ๋ง์ง๋ง์ผ๋ก double hashing ๋ฐฉ์์ ๋ฐ์ดํฐ์ ํด์๊ฐ์ ๋ค๋ฅธ ํด์ ํจ์๋ก ํด์ฑํ์ฌ ๋น์ด์๋ bucket์ ์ฐพ๋ ๋ฐฉ์์ ๋๋ค.
Seperate Chaining์ ํด์ bucket์ LinkedList๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๋ก ๊ตฌ์ฑํ์ฌ ํด์ ์ถฉ๋ ๋ฐ์์ ํด๋น bucket์ LinkedList์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๋ ๋ฐฉ์์ ๋๋ค.
ํน์ ๋ฒํท์ ํด๋นํ๋ LinkedList์ ๋ฐ์ดํฐ๊ฐ 8๊ฐ๊ฐ ๋๋ฉด Red Black Tree๋ก ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค. ๊ทธ ์ด์ ๋ ๋ฐ์ดํฐ๊ฐ ๋ง์์ง๋ฉด LinkedList ์ ํ์ ์๋๊ฐ ๋๋ ค์ง๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ฐ์ดํฐ๊ฐ 6๊ฐ๋ก ์ค์ด๋ค๋ฉด ๋ค์ LinkedList๋ก ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค. ๊ทธ ์ด์ ๋ Red black Tree๋ฅผ ์ฌ์ฉํ๋ฏ๋ก์จ ๊ฐ์ง ์ ์๋ ์๋ ์ธก๋ฉด์ ์ด์ ์ด ํฌ์ง ์๊ณ , ์คํ๋ ค ๋ฉ๋ชจ๋ฆฌ ์์๊ฐ ๋ ํฌ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ฐ์ดํฐ ์ญ์ ์ ๋ฐ์ํ ์ ์๋ Open Addressing์ ๋ฌธ์ ์ ์ ๋ํด ์ค๋ช ํด๋ณด์ธ์
์ด๋ฌํ Open Addressing์ ํ์ ๋ฐฉ์์ผ๋ก ์ธํด ์ญ์ ํ๊ณ ์ ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๋ ๊ณผ์ ์์ ๋น ๋ฒํท์ ๋ง๋๋ฉด ํ์์ด ์ข ๋ฃ๋๋ ๋ฌธ์ ๊ฐ ๋ํ๋ ์ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ญ์ ๋ ๋ฒํท์ dummy node๋ฅผ ์ฑ์ฐ๊ฑฐ๋ flag๋ฅผ ํ์ฉํ์ฌ ํ์ ๊ณผ์ ์์ ๋น ๋ฒํท์ ๋ง๋๋๋ผ๋ ํ์์ ์ด์ด๊ฐ๋๋ก ํ ์ ์์ต๋๋ค
LinkedList์ Red-Black Tree๋ก Seperate Chaining์ ๊ตฌํํ ๋ ์ป์ ์ ์๋ ์ด์ ์ ๋ํด ๊ฐ๊ฐ ์ค๋ช ํด๋ณด์ธ์
๋ฐ์ดํฐ์ ๊ฐ์๊ฐ ๋ง์ ์๋ก O(N)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง LinkedList์ ํ์ ์๋๋ ๋๋ ค์ง์ง๋ง, Red Black Tree๋ O(logN)์ผ๋ก ๋น๊ต์ ์ค์ํ ํ์ ์๋๋ฅผ ๊ฐ์ง๋๋ค.
ํด์ ์ถ๋์ด ๋ฐ์ํ ๋ฐ์ดํฐ๊ฐ 6๊ฐ๋ก ์ค์ด๋ค๋ฉด Red Black Tree์์ LinkedLisf๋ก ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค.
๋ฐ์ดํฐ ๊ฐ์๊ฐ 6๊ฐ ์ ๋์ด๋ฉด Red Black Tree๋ฅผ ์ฌ์ฉํ๋ฏ๋ก์จ ๊ฐ์ง ์ ์๋ ์๋ ์ธก๋ฉด์ ์ด์ ์ด ๊ทธ๋ฆฌ ํฌ์ง ์๊ณ , ์คํ๋ ค ๋ฉ๋ชจ๋ฆฌ ์์๊ฐ ํฌ๊ธฐ ๋๋ฌธ์ LinkedList๋ก ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค.
๊ทธ๋ํ๋ฅผ ๊ตฌํํ๋ ๋ฐฉ์๋ค์ ์ฅ๋จ์ ์ ๋น๊ตํ์์ค.
๊ทธ๋ํ์ ํธ๋ฆฌ์ ์ฐจ์ด์ ์ ๋ํด์ ์ค๋ช ํ์์ค.
BFS์ DFS์ ์ฐจ์ด์ ์ ๋ํด์ ์ค๋ช ํ์์ค.
์ต์ ์คํจ๋ ํธ๋ฆฌ์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์.
์คํจ๋ ํธ๋ฆฌ๋ ๊ทธ๋ํ์ ๋ชจ๋ ์ ์ ์ด ์ฌ์ดํด์์ด ์ฐ๊ฒฐ๋ ํํด๋ฅผ ๋งํฉ๋๋ค.
ํฌ๋ฃจ์ค์นผ๊ณผ ํ๋ฆผ์ ํตํด์ MST๋ฅผ ๊ตฌํํ ์ ์์ต๋๋ค.
ํฌ๋ฃจ์ค์นผ๊ณผ ํ๋ฆผ ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐ๋ณต์ก๋์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
ํฌ๋ฃจ์ค์นผ์ ๊ฒฝ์ฐ ๊ทธ๋ํ์ ๊ฐ์ ๋ค์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ฌ ๊ฐ์ฅ ๋ฎ์ ๊ฐ์ค์น์ ๊ฐ์ ๋ถํฐ ์ฐจ๋ก๋ก MST ์งํฉ์ ์ถ๊ฐํ๋ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ ๋ฐฉ์์ ์ฌ์ฉํฉ๋๋ค.
union-find๋ฅผ ์ด์ฉํด์ ์ฌ์ดํด์ด ์์ฑ์ฌ๋ถ๋ฅผ ํ์ธํ๋ฉด(์ถ๊ฐํ๊ณ ์ ํ๋ ๊ฐ์ ์ ์ ๋ ์ ์ ์ด ๊ฐ์ ์งํฉ์ ์ํด์๋์ง ํ์ธ) ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐ ๋ณต์ก๋๋ ๊ฐ์ ๋ค์ ์ ๋ ฌํ๋ ์๊ฐ์ ์ข์ฐ๋ฉ๋๋ค. ํต ์ ๋ ฌ์ ์ฌ์ฉํด์ ์ ๋ ฌํ๋ค๋ฉด O(ElogE) ์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๊ฒ ๋ฉ๋๋ค.
ํ๋ฆผ์ ๊ฒฝ์ฐ๋ ์์ ์ ์ ๋ถํฐ ์ธ์ ํ ๊ฐ์ ๋ค ์ค ๋ฎ์ ๊ฐ์ค์น๋ฅผ ์ ํํด๊ฐ๋ฉฐ ๋จ๊ณ์ ์ผ๋ก ํธ๋ฆฌ๋ฅผ ํ์ฅํด๊ฐ๋ ๋ฐฉ์์ ๋๋ค.
๋ชจ๋ ๋
ธ๋์ ๋ํด ํ์์ ์งํํ๋ฏ๋ก O(V) ์
๋๋ค. ์ฐ์ ์์ ํ(ํ)์ ์ฌ์ฉํ์ฌ ๋งค ๋
ธ๋๋ง๋ค ์ต์ ๊ฐ์ ์ ์ฐพ๋ ์๊ฐ์ O(logV) ๊ฑธ๋ฆฝ๋๋ค. ๋ฐ๋ผ์ ํ์๊ณผ์ ์๋ O(VlogV)๊ฐ ์์๋ฉ๋๋ค.
๋
ธ๋์ ์ธ์ ๊ฐ์ ์ ์ฐพ๋ ์๊ฐ์ O(E) ์ด ๊ฑธ๋ฆฌ๊ณ , ๊ฐ ๊ฐ์ ์ ๋ํด ํ์ ์
๋ฐ์ดํธํด์ฃผ๋ ๊ณผ์ ์ O(logV) ๊ฐ ๊ฑธ๋ ค ์ฐ์ ์์ ํ ๊ตฌ์ฑ์ O(ElogV) ์ ์๊ฐ๋ณต์ก๋๊ฐ ์์๋ฉ๋๋ค. ๋ฐ๋ผ์ O(VlogV+ElogV) = O((V+E)logV) ๋ก O(ElogV) ๊ฐ ๋ฉ๋๋ค.
(โตE๊ฐ ์ผ๋ฐ์ ์ผ๋ก V๋ณด๋ค ํฌ๊ธฐ ๋๋ฌธ)
๋ง์ฝ ์ฐ์ ์์ ํ๊ฐ ์๋ ๋ฐฐ์ด๋ก ๊ตฌ์ฑํ๋ค๋ฉด, ๊ฐ ์ ์ ์ ์ต์ ๊ฐ์ ์ ์ฐพ๋ ํ์๊ณผ์ ์ O(V^2) ์ด ๊ฑธ๋ฆฌ๊ณ , ํ์ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ธ์ ํ ๊ฐ์ ์ ์ฐพ์ ๋ฐฐ์ด์ ๋ฃ์ด์ฃผ๋ฉด ๋๋ฏ๋ก O(E*1) ์ด ์์๋ฉ๋๋ค. ๋ฐ๋ผ์ ์๊ฐ๋ณต์ก๋๋ (O(V^2)์ด ๋ฉ๋๋ค.
ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ๊ณผ ํ๋ฆผ ์๊ณ ๋ฆฌ์ฆ์ ์ฐจ์ด์ ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
ํฌ๋ฃจ์ค์นผ์ ๊ฒฝ์ฐ ๊ทธ๋ํ์ ๊ฐ์ ๋ค์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ฌ ๊ฐ์ฅ ๋ฎ์ ๊ฐ์ค์น์ ๊ฐ์ ๋ถํฐ ์ฐจ๋ก๋ก MST ์งํฉ์ ์ถ๊ฐํ๋ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ ๋ฐฉ์์ด๊ณ ,
ํ๋ฆผ์ ๊ฒฝ์ฐ๋ ์์ ์ ์ ๋ถํฐ ์ธ์ ํ ๊ฐ์ ๋ค ์ค ๋ฎ์ ๊ฐ์ค์น๋ฅผ ์ ํํด๊ฐ๋ฉฐ ๋จ๊ณ์ ์ผ๋ก ํธ๋ฆฌ๋ฅผ ํ์ฅํด๊ฐ๋ ๋ฐฉ์์ ๋๋ค.
๊ฐ์ ์ ๊ฐ์๊ฐ ์ ์ ๊ฒฝ์ฐ์๋ ํฌ๋ฃจ์ค์นผ์ ๊ฐ์ ์ ๊ฐ์๊ฐ ๋ง์ ๊ฒฝ์ฐ๋ค๋ ํ๋ฆผ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.