| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
Data.UnionFind
Synopsis
- newtype UnionFind s = UF {
- getUnionFind :: MVector s Int
- newUnionFind :: PrimMonad m => Int -> m (UnionFind (PrimState m))
- freezeUnionFind :: PrimMonad m => UnionFind (PrimState m) -> m (Vector Int)
- findUF :: PrimMonad m => UnionFind (PrimState m) -> Int -> m Int
- sizeUF :: PrimMonad m => UnionFind (PrimState m) -> Int -> m Int
- uniteUF :: PrimMonad m => UnionFind (PrimState m) -> Int -> Int -> m Bool
- uniteUF_ :: PrimMonad m => UnionFind (PrimState m) -> Int -> Int -> m ()
- equivUF :: PrimMonad m => UnionFind (PrimState m) -> Int -> Int -> m Bool
- countGroupUF :: PrimMonad m => UnionFind (PrimState m) -> m Int
Documentation
newUnionFind :: PrimMonad m => Int -> m (UnionFind (PrimState m)) Source #
freezeUnionFind :: PrimMonad m => UnionFind (PrimState m) -> m (Vector Int) Source #
uniteUF :: PrimMonad m => UnionFind (PrimState m) -> Int -> Int -> m Bool Source #
>>>uf <- newUnionFind 3>>>uniteUF uf 0 1True>>>uniteUF uf 0 1False>>>uniteUF uf 0 2True>>>uniteUF uf 1 2False
countGroupUF :: PrimMonad m => UnionFind (PrimState m) -> m Int Source #
O(n)