Algs4 union-find算法 带路径压缩的加权Quick-Union实现
来源:互联网 发布:b超双顶径数据分男女 编辑:程序博客网 时间:2024/06/04 17:49
Code
package sed.algorithm.chapter1.section5;public class PathCompressWeightedQuickUnionUF { private int[] id; private int[] sz; private int count; public PathCompressWeightedQuickUnionUF(int max) { id = new int[max]; sz = new int[max]; for (int i = 0; i < id.length; i++) { id[i]=i; } for (int i = 0; i < id.length; i++) { sz[i]=1; } count = max; } public int count(){ return count; } public int find(int p){ int pParent = p; while(id[pParent]!=pParent){ pParent=id[pParent]; } while(id[p]!= p){ p=id[p]; id[p]=pParent; } return pParent; } public boolean connected(int p, int q){ return find(p)== find(q); } public void union(int p, int q){ int pRoot = find(p); int qRoot = find(q); if (pRoot!=qRoot) { if (sz[pRoot] < sz[qRoot]) { id[pRoot] = qRoot; sz[qRoot] += sz[pRoot]; }else { id[qRoot] = pRoot; sz[pRoot] += sz[qRoot]; } count--; } }}
Input
100 million points , 200million links
Notes:
速度不是一般的快,之前用quick union 算法 跑了一个多小时。。。(其实我也不想的,因为测试代码里面类引用错了,一直以为用的是这个算法,其实用的是最简单的quick union)。TT 改了以后还没要一分钟。
0 0
- Algs4 union-find算法 带路径压缩的加权Quick-Union实现
- union-find算法——使用路径压缩的加权quick-union算法实现
- 算法代码实现之Union-Find,Java实现,quick-find、quick-union、加权quick-union(附带路径压缩优化)
- 算法代码实现之Union-Find,C++实现,quick-find、quick-union、加权quick-union(附带路径压缩优化)
- union-find算法(路径压缩+加权quick-union算法 数组实现)
- 算法代码实现之Union-Find,Golang(Go语言)实现,quick-find、quick-union、加权quick-union(附带路径压缩优化)
- union-find下(加权quick-union)算法
- 1.3:Union-Find算法-----quick-union算法的改进(加权的quick-union算法)
- Union-find算法(algs4)
- 算法 加权quick-union
- 加权quick-union算法
- 1.3:Union-Find算法-----quick-union算法
- union-find中(quick-union)算法
- union-find算法中的quick-find算法的复杂度
- 1.3:Union-Find算法-----quick-find算法
- union-find上(quick-find)算法
- Union-Find 算法实现
- 动态连通性:union-find算法(常规搜索、树状触点搜索、加权树搜索的算法分析)
- hough变换 矩形检测
- qlikview怎样创建即席明细查询表
- 数据模型代替字典
- Java如何实现点击按钮弹出保存文件的选项
- sizeof基础知识
- Algs4 union-find算法 带路径压缩的加权Quick-Union实现
- 【整理】unity3d优化总结篇
- InsertSort
- 海马汽车经销商管理系统技术解析(六)顾客生日祝贺
- Window下安装Redis
- unity3d优化总结篇
- 自定义View的封装(代码方式)
- 设置UILabel背景和文字的透明度(代码和SB两种实现)
- 自定义view封装-用Button显示商品图片和名称