반응형
python에서 분리집합을 하기 위한 find 함수와 union함수. 둘 다 최악의 경우 시간복잡도 O(n)을 기록한다
# P[i]는 i가 속한 집합의 대표값이 담겨있다.
def find(n):
if P[n] == n:
return n
P[n] = find(P[n])
return P[n]
def union(u, v):
u = find(u)
v = find(v)
if u == v:
return
if u != v:
P[v] = u
반응형
'알고리즘창고' 카테고리의 다른 글
[코드조각] 플로이드-워셜 (0) | 2021.06.11 |
---|---|
[코드조각] 다익스트라 (0) | 2021.05.07 |
[C] 보고 정렬 (bogo sort, stupid sort) (0) | 2018.07.13 |