Java教程

算法-并查集

本文主要是介绍算法-并查集,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

常用场合:

图的使用 给定两点 构造图 判断两点之间是否连通

初始化

private static void init(int n, int fa[]) {//初始化数组
        for (int i = 1; i <= n; i++) {
            fa[i] = i;
        }
    }

查根节点

private static int find(int x, int fa[]) {//查
        if (fa[x] == x) {
            return x;
        } else {
            fa[x] = find(fa[x], fa);
            return fa[x];
        }
    }

将两点连接在一起

private static void merge(int i, int j, int fa[]) {//并
        if (fa[find(i, fa)] != find(j, fa))
            fa[find(i, fa)] = find(j, fa);
    }

参考链接:https://zhuanlan.zhihu.com/p/93647900

这篇关于算法-并查集的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!