티스토리 뷰

상호배타 집합: 서로 중복하게 포함된 원소가 없는 집합들을 뜻한다.

집합에 특정한 멤버를 대표자라고 하며 각 집합을 구분한다.


상호배타집합 표현방법
=> 연결리스트,  트리

연결리스트 
1.같은 집합의 원소들은 하나의 연결리스트로 관리
2.맨 앞의 원소가 대표원소
3. 각 원소는 대표를 가리키는 링크를 갖음


트리 
1. 하나의 잡합을 하나의 트리
2. 자식노드는 부모노드를 가리킨다. 따라서 가장 상위에 있는 루트 노드가 대표자가 된다.


연산
Make-Set(x) :멤버x만 포함하는 새로운 집합을 생성
Find-Set(x) :원소 x가 속한 집합을 알아내기 위함, 대표자를 알아내기 위함
Union(x,y) : x가 속한 집합과 y가 속한 집합을 하나의 집합으로 합침


연산의 효율을 높이는 방법
1.  union에서 rank를 이용함
각 노드는 자신을 루트로 하는 트리의 높이를 rank로 저장한 뒤 두 집합을 합칠 때 랭크가 낮은 집합을 높은 집합에 붙인다.
2. path compression
 Fine-set하는 과정에서 모든 노드들이 루트를 가리키도록 변경시켜준다.

'TIL' 카테고리의 다른 글

서버-클라이언트  (0) 2021.05.17
티스토리 구글 검색 제외됨!!!!!ㅡㅡ  (0) 2021.04.25
[알고리즘] 트리  (2) 2021.04.05
[GIT] branch  (0) 2021.03.26
[SQL] 기본 명령어 예시  (0) 2021.03.25
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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
글 보관함