zoukankan      html  css  js  c++  java
  • 并查集

    用并查集查找根节点,包括三种方法:

    1.朴素查找法:

    int find(int x)
    {
        int r = x;
        while(father[r] != r)
            r = father[r];
        return r;
    }

     

    2.路径压缩(递归):

    int find(int x)
    {
        if(father[x] != x)
         /*
           在回溯时压缩路径
           使得搜索x的根节点时所经过的节点都指向根节点
         */ father[x]
    = find(father[x]); return father[x]; }


    3.路径压缩(非递归):

    int find(int x)
    {
        int i, j, r = x;
        while(father[r] != r)
            r = father[r];        // 先搜索到根节点,并记录
        i = x;
        while(i != r)
        {
            j = father[i];       // j 暂存i的父节点
            father[i] = r;     // i 指向根节点
            i = j;        // i 移动到父节点
        }
        return r;
    }
  • 相关阅读:
    Struts2-result配置结果视图
    Struts2 -action处理业务请求
    struts 2
    mvc模式
    vue之webpack安装配置vue
    vue之webpack
    文件上传
    LinkedList详解
    ArrayList详解
    HashMap详解
  • 原文地址:https://www.cnblogs.com/1203ljh/p/4641656.html
Copyright © 2011-2022 走看看