Skip to content

并查集

这是第一个我认为非常优美的数据结构,最近项目中遇到一个问题(Two-pass 求解连通域)恰巧用到了并查集。虽然第一次接触已经快十年了,但这个数据结构我一直觉得非常优美,小巧但高效。

原理我不记录,这种经典的结构网上资料太多了,只是单纯记录我个人对这个结构的看法。

只看其中的 find 方法就能感觉出这种小巧但是高效的魅力:

int find(int x) {
    while (x != parent[x])
        x = parent[x] = parent[parent[x]];
    return x;
}

Comments