Union-Find(并查集): Quick find算法

解决dynamic connectivity的一种算法:Quick find

Quick find--Data sturcture

Union-Find(并查集): Quick find算法_第1张图片

如果两个objects是相连的,则它们有相同的array value.

Quick find--find&union operation

Union-Find(并查集): Quick find算法_第2张图片

 

Find很好实现,只需要查看它们的值是否一样就可以了

Union有点复杂,我们需要将其中的一个component里面所有的objects的值都改为和另一个component的值一样(merge components)

Quick find--Java implementation

Union-Find(并查集): Quick find算法_第3张图片

 

一个私有的变量,一个构造函数对这个变量进行初始化,两个方法(connected与union)

Quick-find性能分析:O(n2)=>太慢

Union-Find(并查集): Quick find算法_第4张图片

O(n2)性能非常不好,特别是对于大规模的问题,O(n2)运行得非常慢,无法接受。

你可能感兴趣的:(Union-Find(并查集): Quick find算法)