본문 바로가기
알고리즘창고

[코드조각] union-find (분리집합)

by 야호호코코 2021. 9. 13.
반응형

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