并查集--QuickFind实现

1 并查集的意义
判断连通性问题
初始化每个元素都是不同集合
判断两个点是否连通,查看是否在同一个集合中即可

2 QuickFindUF实现

顾名思义,查询非常快,用数组来存储,每个索引对应的是集合的编号

/**
 * @author Created by qiyei2015 on 2019/12/11.
 * @version: 1.0
 * @email: 1273482124@qq.com
 * @description: 快速查询的并查集
 * 用数组来存储,每个索引对应的是集合的编号
 */
public class QuickFindUF implements UF{

    /**
     * 元素集合
     */
    private int[] id;

    public QuickFindUF(int size) {
        id = new int[size];
        //分别属于不同的集合
        for (int i = 0 ;i < id.length; i++){
            id[i] = i;
        }
    }

    @Override
    public int size() {
        return id.length;
    }

    /**
     * 时间复杂度O(n)
     * @param p
     * @param q
     */
    @Override
    public void union(int p, int q) {
        int idP = find(p);
        int idQ = find(q);

        //已经是同一个集合了
        if (idP == idQ){
            return;
        }

        for (int i = 0 ;i < id.length ;i++){
            //将所有在idP的集合中的元素与idQ一起合并
            if (id[i] == idP){
                id[i] = idQ;
            }
        }
    }

    @Override
    public boolean connected(int p, int q) {
        return find(p) == find(q);
    }

    /**
     * 找到元素所p在集合编号
     * @param p
     * @return
     */
    private int find(int p){
        if (p < 0 || p > id.length){
            throw new IllegalArgumentException("IllegalArgument for " + p);
        }
        return id[p];
    }
}

这种并查集的union操作时间复杂度是O(n),因此一般不采用这种实现,后续会介绍快速连接的并查集及其优化过程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Apollo Docker Quick Start Files是用于在Docker容器中快速启动Apollo配置中心的文件集合。Apollo配置中心是携程框架部门开发的分布式配置管理平台,用于实现配置集中管理和动态配置更新的需求。 使用Docker容器来快速启动Apollo配置中心可以提高开发和部署的效率,方便跨平台和环境的使用。Apollo Docker Quick Start Files包含了配置中心的相关配置文件、Dockerfile和启动脚本等,使用这些文件可以快速构建和启动配置中心的Docker容器。 在启动Docker容器之前,我们需要先配置好Apollo配置中心的相关信息,在配置文件中指定数据库、端口等参数。然后,使用Docker命令构建Docker镜像并生成Docker容器,通过运行启动脚本,让Docker容器启动并运行Apollo配置中心。 通过使用Apollo Docker Quick Start Files,可以方便地在各种环境中部署和启动Apollo配置中心,提高系统的可维护性和可扩展性。同时,通过Docker的特性,我们可以更好地管理和监控配置中心的运行状态,更灵活地进行配置的更新和维护。 总之,Apollo Docker Quick Start Files提供了一种便捷的方式来快速部署和启动Apollo配置中心,使得我们能够更加高效地管理和使用分布式配置,提高系统的稳定性和可靠性。 ### 回答2: Apollo是一个分布式配置中心,用于管理和配置分布式系统中的应用程序的配置信息。Docker是一种容器化平台,可以将应用程序打包成容器,并在不同的环境中快速部署和运行。 Apollo-Docker-Quick-Start-Files是一个用于快速开始使用Apollo和Docker的文件集合。它包含了一系列的配置文件和脚本,可以帮助用户快速搭建Apollo配置中心和使用Docker部署应用程序。 在这个文件集合中,用户可以找到一些配置文件示例,如application.properties和meta-server.properties,这些文件定义了Apollo的配置中心和元数据服务器的相关配置信息。用户可以根据自己的需要进行修改和定制。 此外,还有一些脚本文件,如docker-compose.yaml和Dockerfile。这些文件用于定义Docker容器的构建和部署规则。用户可以使用docker-compose命令,根据docker-compose.yaml文件一键启动Apollo配置中心和应用程序的Docker容器。 使用Apollo-Docker-Quick-Start-Files,用户可以轻松地搭建Apollo配置中心和部署应用程序。它提供了一种快捷的方式,帮助用户快速入门并使用Apollo和Docker进行分布式系统的配置和部署管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值