zoukankan      html  css  js  c++  java
  • Algs4-1.5-quick-find

    图片 
    public class UF
    {
        private int[] id;
        private int count;
        public UF(int N)
        {
            count=N;
            id=new int[N];
            for (int i=0;i<N;i++)
                id[i]=i;
        }
       
         public int count()
         {return count;}
        
          boolean connected(int p,int q)
          {return find(p)==find(q);}
         
           public int find(int p)
           {return id[p];}
          
           public  void union(int p,int q)
           {
              int pID=find(p);
              int qID=find(q);
              if (pID==qID) return;
              for (int i=0;i<id.length;i++)
                  if(id[i]==pID) id[i]=qID;
              count--;
           }
          
           public static void main(String[] qrgs)
           {
               int N=StdIn.readInt();
               UF uf=new UF(N);
               while (!StdIn.isEmpty())
               {
                   int p=StdIn.readInt();
                   int q=StdIn.readInt();
                   if(uf.connected(p,q)) continue;
                   uf.union(p,q);
                   StdOut.println(p+ " " +q);
                }//end while
            }//end main
    }//end class



  • 相关阅读:
    sql 变量赋值
    mysql 行号 获取指定行数据
    SQL Server获取指定行的数据
    sql server 创建内联表值函数
    sql server 表变量存储临时查询数据
    sql server 循环操作
    oracle for in 学习
    oracle C# 访问
    sql server insert values 多值 与oracle 的不同
    mysql 如何选择随机行
  • 原文地址:https://www.cnblogs.com/longjin2018/p/9854606.html
Copyright © 2011-2022 走看看