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 1
True>>>
uniteUF uf 0 1
False>>>
uniteUF uf 0 2
True>>>
uniteUF uf 1 2
False
countGroupUF :: PrimMonad m => UnionFind (PrimState m) -> m Int Source #
O(n)