数据结构--并查集的进一步优化

数据结构–并查集的进一步优化

Find操作的优化(压缩路径)

压缩路径 − − F i n d 操作,先找到根节点,再将查找路径上所有结点都挂到根结点下 \color{red}压缩路径 -- Find操作,先找到根节点,再将查找路径上所有结点都挂到根结点下 压缩路径Find操作,先找到根节点,再将查找路径上所有结点都挂到根结点下

int Find(int S[], int x)
{
    return S[x] == x ? x : S[x] = Find(S, x); 
}

每次Find操作,先找根,再“压缩路径”,可使树的高度不超过 O ( α ( n ) ) O(\alpha(n)) O(α(n)) α ( n ) \alpha(n) α(n)是一个增长很缓慢的函数,对于常见的n值,通常 α ( n ) ≤ 4 \alpha(n)≤4 α(n)4,因此优化后并查集的Find、Union操作时间开销都很低

并查集的优化

数据结构--并查集的进一步优化_第1张图片

你可能感兴趣的:(408数据结构,数据结构,算法,c语言,c++,并查集)