Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 페이징
- Spring Cloud Feign
- 쿼리
- MVC
- 데이터베이스
- Jenkins
- 코딩
- 알고리즘
- 운영체제
- 클라우드
- DP
- 자료구조
- 디자인 패턴
- aws
- 백준
- db
- retry
- 자바
- JPA
- golang
- feign
- Spring
- 오라클
- Kafka
- Intellj
- SQL
- Spring Cloud
- Spring Boot
- PL/SQL
- MST
Archives
- Today
- Total
justgo_developer
최소비용신장트리(minimum spanning tree)-3 본문
728x90
반응형
서로소인 집합들의 표현
- 각 집합을 하나의 트리로 표현
배열 parent를 만들어 모든 트리를 하나의 배열로 표현
-자신이 속한 트리의 루트를 찾음
FIND-SET(x)
if x≠p[x]
then p[x] <- FIND-SET(p[x])
return p[x]
-한 트리의 루트를 다른 트리의 루트의 자식 노드로 만듬
UNION(u,v)
1. x<-FIND-SET(u);
2. y<-FIND-SET(v);
3. p[x]<-y;
weighted union
- 두 집합을 union할때 작은 트리의 루트를 큰 트리의 루트의 자식으로 만듬(여기서 크기란 노드의 개수)
- 각 트리의 크기(노드의개수)를 카운트하고 있어야
WEIGHTED-UNION(u,v)
1. x<-FIND-SET(u);
2. y<-FIND-SET(v);
3. if size[x]>size[y] then
4. p[y]<-x;
5. size[x]<-size[x]+size[y];
6. else
7. p[x]<-y;
8. size[y]<-size[y]+size[x];
Path compression
FIND-SET-PC(x)
1. while x ≠ p[x] do
2. p[x]<-p[p[x]]; //경로의 길이를 반으로 줄임
3. x<-p[x];
4. end.
5. return p[x];
728x90
반응형
'IT > 알고리즘' 카테고리의 다른 글
[JAVA] 백준 1260 DFS와 BFS (0) | 2018.01.07 |
---|---|
최단경로(shortest path problem)-1 (0) | 2018.01.06 |
최소비용신장트리(minimum spanning tree)-2 (0) | 2018.01.04 |
최소비용신장트리(minimum spanning tree)-1 (0) | 2018.01.04 |
방향그래프-DAG(Directed Acyclic Graph) (0) | 2018.01.03 |