当前位置: 首页 > wzjs >正文

高端网站建设哪家好简阳seo排名优化培训

高端网站建设哪家好,简阳seo排名优化培训,百度官网建设,一级a做爰片 A视频网站1. 是什么?一种很不一样的树形结构一般的结构是父亲指向孩子(比如说二叉树); 而并查集是孩子指向父亲2. 解决什么问题? 主要来解决连接问题*接口定义*public interface UF {int getSize();boolean isConnected(int p, int q);vo…

1.   是什么?
一种很不一样的树形结构

  •  一般的结构是父亲指向孩子(比如说二叉树);
  •  而并查集是孩子指向父亲

2. 解决什么问题? 主要来解决连接问题

*接口定义*

 public interface UF {int getSize();boolean isConnected(int p, int q);void unionElements(int p, int q);}

6个版本实现并查集

 public class UnionFind1 implements UF {private int[] id;public UnionFind1(int size) {id = new int[size];for (int i = 0; i < size; i++) {id[i] = i;}}@Overridepublic int getSize() {return id.length;}private int find(int p) {return id[p];}public boolean isConnected(int p, int q) {return find(p) == find(q);}@Overridepublic void unionElements(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;}}}}
*quick union *`` public class UnionFind2 implements UF {
`` 
``     private int[] parent;
`` 
``     public UnionFind2(int size) {
``         parent = new int[size];
``         for (int i = 0; i < size; i++) {
``             parent[i] = i;
``         }
``     }
`` 
``     @Override
``     public int getSize() {
``         return parent.length;
``     }
`` 
``     private int find(int p) {
`` 
``         while (p != parent[p]) {
``             p = parent[p];
``         }
``         return p;
``     }
`` 
``     @Override
``     public boolean isConnected(int p, int q) {
``         return find(p) == find(q);
``     }
`` 
``     @Override
``     public void unionElements(int p, int q) {
`` 
``         int pRoot = find(p);
``         int qRoot = find(q);
``         if (qRoot == pRoot) {
``             return;
``         }
``         parent[pRoot] = qRoot;
``     }
`` }*quick union 基于size的优化*`` public class UnionFind3 implements UF {
`` 
``     //基于size的优化
``     private int[] parent;
`` 
``     private int[] sz;
`` 
``     public UnionFind3(int size) {
``         parent = new int[size];
``         sz = new int[size];
``         for (int i = 0; i < size; i++) {
``             parent[i] = i;
``             sz[i] = 1;
``         }
``     }
`` 
``     @Override
``     public int getSize() {
``         return parent.length;
``     }
`` 
``     private int find(int p) {
`` 
``         while (p != parent[p]) {
``             p = parent[p];
``         }
``         return p;
``     }
`` 
``     @Override
``     public boolean isConnected(int p, int q) {
``         return find(p) == find(q);
``     }
`` 
``     @Override
``     public void unionElements(int p, int q) {
`` 
``         int pRoot = find(p);
``         int qRoot = find(q);
``         if (qRoot == pRoot) {
``             return;
``         }
``         if (sz[qRoot] > sz[pRoot]) {
``             parent[pRoot] = qRoot;
``             sz[qRoot] += sz[pRoot];
``         }else {
``             parent[qRoot] = pRoot;
``             sz[pRoot] += sz[qRoot];
``         }
`` 
``     }
`` }*quick union 基于rank 的优化*`` public class UnionFind4 implements UF {
`` 
``     //基于rank的优化
``     private int[] parent;
`` 
``     private int[] rank;
`` 
``     public UnionFind4(int size) {
``         parent = new int[size];
``         rank = new int[size];
``         for (int i = 0; i < size; i++) {
``             parent[i] = i;
``             rank[i] = 1;
``         }
``     }
`` 
``     @Override
``     public int getSize() {
``         return parent.length;
``     }
`` 
``     private int find(int p) {
`` 
``         while (p != parent[p]) {
``             p = parent[p];
``         }
``         return p;
``     }
`` 
``     @Override
``     public boolean isConnected(int p, int q) {
``         return find(p) == find(q);
``     }
`` 
``     @Override
``     public void unionElements(int p, int q) {
`` 
``         int pRoot = find(p);
``         int qRoot = find(q);
``         if (qRoot == pRoot) {
``             return;
``         }
``         if (rank[qRoot] > rank[pRoot]) {
``             parent[pRoot] = qRoot;
``         } else if (rank[qRoot] < rank[pRoot]) {
``             parent[qRoot] = pRoot;
``         }else {
``             parent[pRoot] = qRoot;
``             rank[qRoot]++;
``         }
`` 
``     }
`` }*quick union 路径压缩版本1*`` public class UnionFind5 implements UF {
`` 
``     //基于路径压缩的优化 ->我们希望树的结构越简单越好,越扁平越好
``     //在find的时候进行压缩操作
``     private int[] parent;
`` 
``     private int[] rank;
`` 
``     public UnionFind5(int size) {
``         parent = new int[size];
``         rank = new int[size];
``         for (int i = 0; i < size; i++) {
``             parent[i] = i;
``             rank[i] = 1;
``         }
``     }
`` 
``     @Override
``     public int getSize() {
``         return parent.length;
``     }
`` 
``     private int find(int p) {
`` 
``         while (p != parent[p]) {
``             parent[p] = parent[parent[p]];
``             p = parent[p];
``         }
``         return p;
``     }
`` 
``     @Override
``     public boolean isConnected(int p, int q) {
``         return find(p) == find(q);
``     }
`` 
``     @Override
``     public void unionElements(int p, int q) {
`` 
``         int pRoot = find(p);
``         int qRoot = find(q);
``         if (qRoot == pRoot) {
``             return;
``         }
``         if (rank[qRoot] > rank[pRoot]) {
``             parent[pRoot] = qRoot;
``         } else if (rank[qRoot] < rank[pRoot]) {
``             parent[qRoot] = pRoot;
``         }else {
``             parent[pRoot] = qRoot;
``             rank[qRoot]++;
``         }
`` 
``     }
`` }*quick union 路径压缩版本2*`` public class UnionFind6 implements UF {
`` 
``     //基于路径压缩的优化 ->我们希望树的结构越简单越好,越扁平越好
``     //在find的时候进行压缩操作
``     private int[] parent;
`` 
``     private int[] rank;
`` 
``     public UnionFind6(int size) {
``         parent = new int[size];
``         rank = new int[size];
``         for (int i = 0; i < size; i++) {
``             parent[i] = i;
``             rank[i] = 1;
``         }
``     }
`` 
``     @Override
``     public int getSize() {
``         return parent.length;
``     }
`` 
``     private int find(int p) {
`` 
``         if (p != parent[p]) {
``             parent[p] = find(parent[p]);
``         }
``         return parent[p];
``     }
`` 
``     @Override
``     public boolean isConnected(int p, int q) {
``         return find(p) == find(q);
``     }
`` 
``     @Override
``     public void unionElements(int p, int q) {
`` 
``         int pRoot = find(p);
``         int qRoot = find(q);
``         if (qRoot == pRoot) {
``             return;
``         }
``         if (rank[qRoot] > rank[pRoot]) {
``             parent[pRoot] = qRoot;
``         } else if (rank[qRoot] < rank[pRoot]) {
``             parent[qRoot] = pRoot;
``         }else {
``             parent[pRoot] = qRoot;
``             rank[qRoot]++;
``         }
`` 
``     }
`` }

http://www.dtcms.com/wzjs/352851.html

相关文章:

  • 公司广告墙设计图片seo策略
  • 乡村建设相关网站志鸿优化设计电子版
  • 广州市安全教育平台app下载南京seo优化
  • 网站建设主题有哪些注意事项电商网站运营
  • 什么企业网站能自己做湖南网站设计外包费用
  • 永康做网站的如何做一个网站
  • 上海网站设计优刻肇庆网站制作软件
  • 网站搭建公司排行网上宣传方法有哪些
  • 大城b2c网站建设报价企业培训有哪些方面
  • 乌鲁木齐设计兼职网站建设网络营销主要特点有哪些
  • 龙岩网站建设公司河南seo外包
  • 高端品牌网站建设方案搜索引擎优化技术
  • 全国猪价今日涨跌表白山seo
  • 网站层级关系站长域名查询
  • 义乌外发加工网可靠吗seo的主要分析工具
  • 网站淘宝推广怎么做网络营销方案ppt
  • 做网站的研究生专业aso优化技术
  • 网站设计主要内容seo技术专员招聘
  • 网站备案备案吗推广引流渠道有哪些
  • 网站加水印百度客户端下载安装
  • 内网网站搭建工具2345浏览器网站进入
  • 十堰优化网站公司广州企业网站seo
  • 笑话网站php程序seo排名课程咨询电话
  • 网站后台与前台今日头条新闻最新疫情
  • 湖南餐饮网站建设优化关键词哪家好
  • 专业手机网站建设设计软文推广发稿平台
  • 豆瓣网站是怎么建设的淄博新闻头条最新消息
  • 专业营销型网站建设公司百度浏览器官网下载并安装
  • 怎样做网站链接教育培训网站设计
  • 我想买个网站做时时彩竞价托管外包服务