MST
Spanning Tree
: ๊ทธ๋ํ ๋ด์ ๋ชจ๋ ์ ์ ์ ํฌํจํ๋ ํธ๋ฆฌ
์ฐ์ ํธ๋ฆฌ์ ์ ์๋ connected undirected acyclic graph (์ฐ๊ฒฐ ๋น๋ฐฉํฅ ๋น์ํ ๊ทธ๋ํ)์ด๋ค. ๋ชจ๋ ๋ ธ๋๋ ์ฐ๊ฒฐ๋์ด์์ผ๋ฉฐ, ๋ฐฉํฅ์ฑ์ ์๊ณ ์ํ์ด ์กด์ฌํ์ง ์๋ ๊ทธ๋ํ์ด๋ค.
ํ๋์ ๊ทธ๋ํ๊ฐ ์ฃผ์ด์ก์ ๋, ๊ทธ๋ํ ๋ด์์ ์ฌ๋ฌ ํธ๋ฆฌ๋ฅผ ์ฐพ์ ์ ์๋ค. ๊ทธ ์ค ํน๋ณํ๊ฒ ๋ชจ๋ ์ ์ ์ ํฌํจํ๋ ํธ๋ฆฌ๋ฅผ Spanning Tree๋ผ๊ณ ํ๋ค.
๋ค๋ฅด๊ฒ ๋งํ๋ฉด Spanning tree(์ ์ฅ ํธ๋ฆฌ)๋ ๊ทธ๋ํ์ ๋ถ๋ถ ๊ทธ๋ํ๋ฉด์ ๊ฐ์ ์ ์๊ฐ ๊ฐ์ฅ ์ ์(์ต์ ์ฐ๊ฒฐ) ๊ทธ๋ํ์ด๋ค.
๊ฐ์ด ์์จ๋ค๋ฉด ๊ทธ๋ฆผ์ผ๋ก ์ดํด๋ณด์.
์์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๊ทธ๋ํ๊ฐ ์ฃผ์ด์ก์ ๋, ์ต์ํ์ ๊ฐ์ ์ ์ฌ์ฉํ์ฌ ๋ชจ๋ ์ ์ ์ ํฌํจํ๋ ๋ถ๋ถ ๊ทธ๋ํ๊ฐ ์ฌ๋ฌ ๊ฐ ์กด์ฌํ๋ค. ์ด ๋ถ๋ถ ๊ทธ๋ํ๋ ์ต์ํ์ ๊ฐ์ ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์, ํธ๋ฆฌ์ ํํ๊ฐ ๋๋ค. ์ด๋ฅผ Spanning tree๋ผ๊ณ ํ๋ค.
ํน์ง
Spanning tree๋ ๊ทธ๋ํ ๋ด์ n๊ฐ์ ์ ์ ์ n-1๊ฐ์ ๊ฐ์ ์ผ๋ก ์ฐ๊ฒฐํ๋ค. ํ๋์ ๊ทธ๋ํ์๋ ๋ง์ Spanning tree๊ฐ ์กด์ฌํ ์ ์์ผ๋ฉฐ DFS, BFS ๋ฑ์ ํ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ฌ ์ฐพ์ ์ ์๋ค.
์์ฉ
Spanning tree๋ ๊ฐ์ ์ ์๋ฅผ ์ต์ํ ํ๋ฏ๋ก ๊ฐ์ ์ ๋๋ ๋น์ฉ์ ์ค์ด๋ ๋ฐ์ ๋์์ ์ค๋ค. ๋ฐ๋ผ์ ๋คํธ์ํฌ๋ง ๋ฑ์ ๋ถ์ผ์์ ๋น์ฉ์ ์ต์ํํ๊ณ ์ ํ ๋ ์ฌ์ฉํ๋ค.
MST
: Minimum Spanning Tree
Spanning Tree ์ค์์ ๊ฐ์ ๋ค์ ๊ฐ์ค์น ํฉ์ด ์ต์์ธ ํธ๋ฆฌ๋ฅผ ๋งํ๋ค. ๊ฐ์ค์น ๊ทธ๋ํ์ผ ๋๋ ๋จ์ํ ์ ์ ๊ฐ์ ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋น์ฉ์ ์ ๊ฒ ํ๋ค๊ณ ํ ์ ์๋ค. ๋ฐ๋ผ์ ์ ์ ๊ฐ์ ์ ์ฌ์ฉํ๋ฉด์ ๊ฐ์ค์น์ ํฉ๋ ์ ์ MST๋ฅผ ์ฐพ์์ผํ๋ค.
ํน์ง
MST๋ ๊ฐ์ ์ ๊ฐ์ค์น ํฉ์ด ์ต์์ด๋ฉฐ, Spanning tree์ ํน์ง์ ๋ชจ๋ ๊ฐ์ง๊ณ ์๋ค.
์์ฉ
ํต์ ๋ง, ๋๋ก๋ง, ์ ํต๋ง ์์ ๊ธธ์ด, ๊ตฌ์ถ ๋น์ฉ, ์ ์ก ์๊ฐ ๋ฑ์ ์ต์๋ก ๊ตฌ์ถํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
Kruskal ์๊ณ ๋ฆฌ์ฆ
kruskal์ greedy ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ์ฌ MST๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. MST์ ํน์ง ์ค (์ต์๋น์ฉ), (๋น์ํ) ์ ์งํค๋ฉฐ ๊ฐ ๋จ๊ณ์์์ ์ต์ ์ ๋ต์ ํํ๋ค. ๊ฐ ๋จ๊ณ์ ์ต์ ์ ๋ต์ด ์ ์ฒด์ ์ต์ ์ด๋ผ๋ ๊ฒ์ ๋ฐ๋์ ์ฆ๋ช ํด์ผํ๋ค.
๊ณผ์
- ๊ทธ๋ํ์ ๊ฐ์ ๋ค์ ๊ฐ์ค์น ๊ธฐ๋ฐ์ผ๋ก ์ ๋ ฌํ๋ค.
- ์ ๋ ฌ๋ ์์๋๋ก ๊ฐ์ ์ ํํ๋, ์ฌ์ดํด์ ๋ง๋ค์ง ์๋ ๊ฐ์ ์ ํํ๋ค.
- ๊ฐ์ ์ด n-1๊ฐ๊ฐ ๋ ๋๊น์ง ๋ฐ๋ณตํ๋ค.
์์๋ก ์ดํด๋ณด์.
์์ ๊ฐ์ ๊ทธ๋ํ์์ kruskal ์๊ณ ๋ฆฌ์ฆ์ผ๋ก MST๋ฅผ ์ฐพ์๋ณด์.
์ฒ์์๋ graph ์ค๋ฅธ์ชฝ์ ํ์ ๊ฐ์ด ๊ฐ์ ์ ์ ๋ ฌํ๋ค. ์ ๋ ฌ๋ ๊ฐ์ ์ค ๊ฐ์ฅ ์์ ์๋ ๊ฐ์ ์ ํํ๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก ๊ฐ์ฅ ๊ฐ์ค์น๊ฐ ๋ฎ์ ๊ฐ์ ์ ํํ๋ค.
(A,D) ๊ฐ์ ์ด ๋ค์ด๊ฐ๋ฉด (A,C)=>(C,D)=>(D,A)์ cycle์ด ์๊ธฐ๋ฏ๋ก ๊ฑด๋๋ฐ๊ณ ๋ค์ ๊ฐ์ ์ ํํ๋ค.
cycle์ด ์์ฑ๋๋์ง ํ์ธํ๋ ๋ฐฉ๋ฒ์ ์๋์ '์์(union-find)'๋ฅผ ์ฐธ์กฐํ์.
n-1๊ฐ์ ๊ฐ์ ์ด ํํด์ก์ผ๋ฏ๋ก MST๋ฅผ ์ฐพ์๋ค.
๊ตฌํ
์์ ๊ทธ๋ฆผ์ฒ๋ผ ์๊ฐํ๋ฉด ๊ฐ๋จํ์ง๋ง, ์ค์ ์ฝ๋๋ก ๊ตฌํํ ๋๋ ํด๋น ๊ฐ์ ์ด cycle์ ๋ง๋๋ ์ง๋ฅผ ํ๋จํ๋ ๊ณผ์ ์ด ๊ฐ๋จํ์ง ์๋ค.
์ด๋ dfs๋ฅผ ์ด์ฉํ์ฌ ํ์ธํ๊ธฐ๋ ํ๊ณ , ์ถ๊ฐํ๋ ๊ฐ์ ์ ์ฐ๊ฒฐ๋ ์ ์ 2๊ฐ๊ฐ ์ด๋ฏธ tree์ ์๋์ง๋ฅผ ๊ฒ์ฌํด์ ํ์ธํ๊ธฐ๋ ํ๋ค. ๊ฐ์ฅ ์ ๋ช ํ ๋ฐฉ๋ฒ์ union-find ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค.
union-find ์๊ณ ๋ฆฌ์ฆ์ disjoint set(๊ณตํต๋ ์์๊ฐ ์๋ ์งํฉ๋ค)์ ์ด์ฉํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. union์ ์งํฉ์ ํฉ์น๋ ๊ณผ์ ์ด๊ณ , find๋ ์งํฉ์ ๋ํฏ๊ฐ์ ๋ฐํํ๋ ๊ณผ์ ์ด๋ค. union-find๋ ๋ฐฐ์ด๋ก ๊ตฌํํ๊ธฐ๋ ํ์ง๋ง ๋ฐฐ์ด์์๋ union๊ณผ์ ์ด O(N), find๊ฐ O(1)์ด๊ณ ํธ๋ฆฌ์์๋ union๊ณผ์ ๊ณผ find๊ณผ์ ์ด ๋ชจ๋ O(lgN)์ด๋ฏ๋ก ๋๋ถ๋ถ ํธ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค.
(union-find : https://gmlwjd9405.github.io/2018/08/31/algorithm-union-find.html)
MST์ cycle์ ์ฐพ๋ ๊ณผ์ ๊ณผ ์ฐ๊ด์ง์ด ์ค๋ช ํด๋ณด์. ์ฃผ์ด์ง 2๊ฐ์ tree A, B๊ฐ ์์ ๋, ์ ์ x,y๊ฐ ๊ฐ์ ์งํฉ์ ์ํด์๋์ง ํ์ธํ๋ ค๊ณ ํ๋ค. ๊ฐ์ ์งํฉ์ ์ํด์๋ค๋ ์๋ฏธ๋ ์ด๋ฏธ ์ฐ๊ฒฐ๋์ด์๋ค๋ ์๋ฏธ์ด๊ณ , ๊ทธ๋ ๋ค๋ฉด (x,y)์ ๊ฐ์ ์ ์ถ๊ฐํ์์ ๋ ํด๋น ์งํฉ์ cycle์ด ์๊ธฐ๊ธฐ ๋๋ฌธ์ด๋ค. ๊ฐ์ ์งํฉ์ ์ํด์๋์ง ํ์ธํ๊ธฐ ์ํด์๋ x, y ๊ฐ๊ฐ์ด ์ํ tree์ ๋ฃจํธ๋ ธ๋๊ฐ ๊ฐ์์ง ํ์ธํ๋ฉด ๋๋ค. ์ด ๊ณผ์ ์ ํธ๋ฆฌ๋ฅผ ๊ฑฐ์ฌ๋ฌ ์ฌ๋ผ๊ฐ๋ฉด ๋๊ธฐ ๋๋ฌธ์ O(lgN)์ ์๊ฐ๋ณต์ก๋๋ก ํ์ธ์ด ๊ฐ๋ฅํ๋ค.
์์(union-find)
์์ ๊ณผ์ ์์ ๋ณด์๋ ์์๋ฅผ union-find ๊ณผ์ ๋ง ์์ธํ ํ ๋ฒ ์ดํด๋ณด์.
ํด๋น ๊ทธ๋ํ์์ ์ฒ์์๋ root ์ ์ ๊ฐ์ด ์๊ธฐ ์์ ์ด๋ค. ๊ฐ์ฅ ๊ฐ์ค์น๊ฐ ์์ ์ฒซ ๊ฐ์ (A,C)๋ฅผ ์ถ๊ฐํ ๋, A ์ ์ ๊ณผ C ์ ์ ์ root๊ฐ ๋ค๋ฅด๋ฏ๋ก cycle์ ํ์ฑํ์ง ์๋๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
๊ทธ ํ, (C,D) ๊ฐ์ ์ ์ถ๊ฐํ ๋๋ C ์ ์ ๊ณผ D ์ ์ ์ root๊ฐ ๋ค๋ฅด๋ฏ๋ก cycle์ ํ์ฑํ์ง ์๋๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
(์ฝ๋ ๊ตฌํ ์ถ๊ฐ)
DFS vs Union Find
๋ง์ฝ cycle์ ์ฐพ์ ๋ DFS๋ฅผ ์ฌ์ฉํ๋ค๊ณ ํด๋ณด์. ์ฃผ์ด์ง ๊ทธ๋ํ๊ฐ ์์ ๊ทธ๋ํ์ผ ๋ ํ ์ ์ ์์์ ๊ฐ์ ์ n-1๊ฐ๊ฐ ์กด์ฌํ๊ณ , ์ด ๊ฐ์ ๋ค์ ๊ฐ์ค์น ์์ผ๋ก ํ๋์ฉ ์ฒดํฌํด์ผํ๋ค. ์ต์ ์ ๊ฒฝ์ฐ ๋ง์ง๋ง ๊ฐ์ ์ ์ ์ธํ ๋ชจ๋ ๊ฐ์ ์ด cycle์ ๋ง๋ค ์๋ ์๋๋ฐ, ์ด ๊ฒฝ์ฐ ๋ชจ๋ ๊ฐ์ ์ ๋ํด dfs๋ฅผ ์ํํด์ผํ๋ฏ๋ก n-1์ dfs์ ์๊ฐ๋ณต์ก๋ n์ ๊ณฑํด์ O(n^2)์ ์๊ฐ๋ณต์ก๋๊ฐ ๋์จ๋ค. ์ด ๊ณผ์ ์ n-1๊ฐ์ ๊ฐ์ ์ ์ฐพ์ ๋๊น์ง ๋ฐ๋ณตํด์ผํ๋ฏ๋ก, dfs ์ด์ฉ์ ์ด O(n^3)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค. E๋ฅผ ๊ฐ์ ์ ๊ฐฏ์๋ก, V๋ฅผ ์ ์ ์ ๊ฐฏ์๋ก ํํํ๋ฉด O(EV)๋ผ๊ณ ํํํ ์๋ ์๋ค.
ํ์ง๋ง Union-Find ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ๋ค๋ฉด, cycle์ ์ฐพ๋๋ฐ์ ์ต๋ lgn ๋ฐ์ ๊ฑธ๋ฆฌ์ง ์๋๋ค. ๋ฐ๋ผ์ ๋ชจ๋ ๊ฐ์ ์ ๋ํด ์ฒดํฌ๋ฅผ ํ์ ๋, O(nlgn)์ ์๊ฐ๋ณต์ก๋๊ฐ ๋์ค๋ฉฐ ์ด ์๊ฐ๋ณต์ก๋๋ O(n^2lgn)์ด ๋๋ค. O(ElgV)๋ผ๊ณ ํํํ ์๋ ์๋ค.
์๊ฐ ๋ณต์ก๋
Union-Find ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ์ ๋ ์๊ฐ๋ณต์ก๋๋ cycle์ ์ฐพ๋ ๋ฐ์์ O(n^2lgn)์ด ์์๋๊ณ , ๊ฐ์ ์ ์ ๋ ฌํ๋ ๋ฐ์ O(ElgE)๊ฐ ์์๋๋ฏ๋ก ๊ฐ์ ์ ๋ ฌ ์๊ฐ๋ณต์ก๋์ ๋ฐ๋ผ ์ด ์๊ฐ๋ณต์ก๋๋ O(ElgE)๊ฐ ๋๋ค.
์ฆ, O(n^2lgn)์ด๋ค.
์ ๋ฆฌ
- ๊ฐ์ ์ ํ์ด ๊ธฐ๋ฐ์ด๋ค.
- greedy ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ, ์ด๋ฏธ ์ต์ ์ ํด๋ฅผ ๊ตฌํ ์ ์์์ด ์ฆ๋ช ๋์ด์๋ค.
- cycle์ ์ฐพ์ ๋๋ Union-find ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ค.
- ์๊ฐ๋ณต์ก๋๋ ๊ฐ์ ์ ๋ ฌ์ ๊ธฐ๋ฐํ์ฌ O(n^2lgn)์ด๋ค.
Prim(Dijkstra) ์๊ณ ๋ฆฌ์ฆ
๊ณผ์
- ์์ ์ ์ ์ ํฌํจํ๋ค.
- ์ธ์ ์ ์ ์ค ์ต์ ๊ฐ์ ์ผ๋ก ์ฐ๊ฒฐ๋ ์ ์ ์ ์ ํํ๋ค.
- n-1๊ฐ์ ๊ฐ์ ์ด ๋ชจ์ด๋ฉด ์ข ๋ฃํ๋ค.
์์๋ก ์ดํด๋ณด์.
์์ ๊ฐ์ ๊ทธ๋ํ์์ Prim ์๊ณ ๋ฆฌ์ฆ์ผ๋ก MST๋ฅผ ์ฐพ์๋ณด์.
์ฒ์์๋ ์์ ์ ์ ์ ํฌํจ์ํจ๋ค.
์์์ ์ ๊ณผ ์ธ์ ํ ์ ์ ์ธ (B, C, D) ์ค ๊ฐ์ฅ ๊ฐ์ ์ ๊ฐ์ค์น๊ฐ ๋ฎ์ (A,C)์ C ์ ์ ์ ํฌํจ์ํจ๋ค.
๊ทธ ํ, ์ด๋ฏธ ํฌํจ๋ ์ ์ ๋ค๊ณผ ์ธ์ ํ ์ ์ ์ธ (B,D,E) ์ค ๊ฐ์ฅ ๊ฐ์ ์ ๊ฐ์ค์น๊ฐ ๋ฎ์ (C,D) ์ D ์ ์ ์ ํฌํจ์ํจ๋ค.
์ ์ ์ด ๋ชจ๋ ํฌํจ๋ ๋๊น์ง ๋ฐ๋ณตํ๋ค.
๊ตฌํ
vertice(์ ์ )๋ 3๊ฐ์ง ๋ถ๋ฅ๋ก ๋๋๋ค.
- tree vertice(T) : tree์ ์ํด ์๋ ์ ์
- fringe vertice (F) : tree์ ํฌํจ๋์ง ์์ผ๋ฉด์ ์ฐ๊ฒฐ๋์ด์๋ ์ ์
- unseen vertice (U) : ๋๋จธ์ง
- ๋ชจ๋ ์ ์ ์ U ์งํฉ์ผ๋ก ์ด๊ธฐํํ๋ค.
- ์์ ์ ์ ์ T์ ๋ฃ๊ณ , ํด๋น ์ ์ ๊ณผ ์ธ์ ํ ์ ์ ์ F์ ๋ฃ๋๋ค.
- F๊ฐ ์กด์ฌํ๋ ๋์, T-F์ minimum weight edge๋ฅผ ์ฐพ๋๋ค.
- ํด๋น ๊ฐ์ ์ ์ฐ๊ฒฐ๋ ์ ์ (V)์ T์ ํฌํจ์ํจ๋ค.
- tree์ ํด๋น ๊ฐ์ ์ ํฌํจ์ํจ๋ค.
- V์ ์ธ์ ์ ์ ๋ค์ F์ ํฌํจ์ํจ๋ค.
์๊ฐ ๋ณต์ก๋
Prim ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐ ๋ณต์ก๋๋ ์ต์ ๊ฐ์ค์น ๊ฐ์ ์ ์ฐพ๋ ๊ฒ์ ์์กดํ๋ค.
T ์งํฉ์ k๊ฐ์ ๋
ธ๋๊ฐ ์๊ณ , ์ด ๋
ธ๋์ ๊ฐฏ์๊ฐ n์ด๋ผ๊ณ ํ๋ฉด ์์ ๊ทธ๋ํ์ผ ๋ T-F ๊ฐ์ ์ ๊ฐฏ์๋ (n-k)*k
์ด๋ค. ๋ฐ๋ผ์ ์ต์ ๊ฐ์ค์น ๊ฐ์ ์ ์ฐพ์ผ๋ ค๋ฉด (n-k)*k -1
๋ฒ์ ๋น๊ต๊ฐ ํ์ํ๋ค. ์ต์ ๊ฐ์ค์น ๊ฐ์ ์ ์ฐพ๋ ๊ณผ์ ์ n๊ฐ์ ์ ์ ์ ์ฐพ์ ๋๊น์ง ๋ฐ๋ณตํด์ผํ๋ฏ๋ก, ์ด๋ ๊ฒ ๊ตฌ์ฑ๋์๋ค๋ฉด Prim ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐ๋ณต์ก๋๋ O(n^3)์ผ ๊ฒ์ด๋ค.
ํ์ง๋ง T์ ์ํ ๋ ธ๋๋ค์ ๊ฐ๊ฐ์ ๋ ธ๋๋ก ๋ณด์ง ์๊ณ , ํ๋์ T๋ผ๋ ๋ ธ๋ ๋ณด๊ธฐ ๋๋ฌธ์ ๋ ์ ์ ์๊ฐ๋ณต์ก๋๋ก ์ค์ผ ์ ์๋ค.
์ฆ, ์์ ํ์๋ ๋๊ฐ์ ๊ฐ์ ์ ๋น๊ตํด์ ๊ฐ์ค์น๊ฐ ์์ ๊ฐ์ ๋ง์ ์ ์งํ๋ ๋ฐฉ์์ผ๋ก ๋ํ๋๋ค.
์ด๋ ๊ฒ ๋ํ๋ด๋ฉด n-k
๊ฐ์ ๊ฐ์ ๋ง์ด ์กด์ฌํ๋ค๊ณ ๋ณผ ์ ์๋ค.
์ด๋ ๊ฒ ๊ตฌํํ๊ธฐ ์ํด์๋ ๊ฐ์ค์น๋ฅผ ๋ํ๋ด๋ ๋ฐฐ์ด์ ๋ง๋ค๊ณ , ํด๋น ๋ฐฐ์ด์ด Fringe์ ์ํ๋ ์ ์ ์ ๋ํด์ T์์ ์ต์ ๊ฐ์ค์น๋ง์ ์ ์งํ๋๋ก ๋ง๋ค์ด์ฃผ๋ฉด ๋๋ค. ์ ์ ์ด T์ ์ถ๊ฐ๋ ๋๋ง๋ค ๊ธฐ์กด์ ์กด์ฌํ๋ ์ต์ ๊ฐ์ค์น๋ณด๋ค ํด๋น ์ ์ ๊ณผ ์ด์ด์ง๋ ๊ฐ์ ์ ๊ฐ์ค์น๊ฐ ๋ ์๋ค๋ฉด ๊ฐฑ์ ํด์ฃผ๋ฉด ๋๋ ๊ฒ์ด๋ค.
์ ์ ์ด ์ถ๊ฐ๋ ๋๋ง๋ค ์ต์ ๊ฐ์ค์น๊ฐ ๊ฐฑ์ ๋๋ฏ๋ก ์ด๋ฅผ ์ ๋ ฌํ๊ธฐ ์ํด์๋ O(nlgn)์ ์๊ฐ๋ณต์ก๋๊ฐ ํ์ํ๋ค. ๋ฐ๋ผ์ ์ด O(n^2lgn)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง ์ ์๋ค.
์ ๋ฆฌ
- ์ ์ ์ ํ์ด ๊ธฐ๋ฐ์ด๋ค.
- ์ต์ ๊ฐ์ค์น ๊ฐ์ ์ ์ฐพ๊ธฐ ์ํด ๋ฐฐ์ด๋ก ์ด๋ฅผ ๊ฐฑ์ ํ๋ค.
- ์๊ฐ๋ณต์ก๋๋ ๊ฐ์ ์ ๋ ฌ์ ๊ธฐ๋ฐํ์ฌ O(n^2lgn)์ด๋ค.
Prim vs Kruskal
prim๊ณผ kruskal ์๊ณ ๋ฆฌ์ฆ ๊ฒฐ๊ณผ๋ก ๋์จ MST๋ ์๋ก ๋ค๋ฅผ ์ ์๋ค.
Comment