zoukankan      html  css  js  c++  java
  • Algs4-1.5.1使用quick-find算法处理序列

    1.5.1使用quick-find算法处理序列9-0 3-4 5-8 7-2 2-1 5-7 0-3 4-2。对于输入的每一对整数,给出id[]数组的内容和访问数组的次数。
    答:
    图片
    图片
    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;
              StdOut.printf("%3d",i);
            }
            StdOut.println();
        }
       
         public int count()
         {return count;}
        
          boolean connected(int p,int q)
          {return find(p)==find(q);}
          //quick-find
           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--;
              for (int i=0;i<id.length;i++)
                  StdOut.printf("%3d",id[i]);
              StdOut.println();
           }
         
        /*
          public int find(int p)
          {
              while(p!=id[p]) p=id[p];
              return p;
          }
         
          public void union(int p,int q)
          {
              int pRoot=find(p);
              int qRoot=find(q);
              if(pRoot==qRoot) return;
              id[pRoot]=qRoot;
              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;
                   StdOut.println(p+ " " +q);
                   uf.union(p,q);
                  
                }//end while
            }//end main
    }//end class

    文件:tinyUF.txt
    10
    9
    0
    3
    4
    5
    8
    7
    2
    2
    1
    5
    7
    0
    3
    4
    2

  • 相关阅读:
    21 jsp——jsp中的相对路径和绝对路径
    20 jsp——jsp的九大内置对象
    19 jsp——jsp的转发标签
    18 jsp——静态引入和动态引入
    17 jsp——全局代码,局部代码
    【zabbix告警监控】配置zabbix监控nginx服务
    【nagios监控】基于linux搭建nagios监控
    【zabbix监控问题】记录zabbix控制面板报错及日志报错的解决方法
    【docker构建】基于docker构建rabbitmq消息队列管理服务
    【docker构建】基于docker搭建redis数据库缓存服务
  • 原文地址:https://www.cnblogs.com/longjin2018/p/9854648.html
Copyright © 2011-2022 走看看