暑期【并查集】

*集合

**并查集

【应用】File transfer:计算机网络连通;

TSSN【too simple sometimes naive】

***union:

按秩归并【两种】

        -高度。高度大的返回时不用改变高度

        -规模。最终小规模“贴”到大规模时需要改变规模

【防止成为单支树】

***find:

        路径压缩、第一次find操作会“痛苦”,但是后面就find效率高了

return s[X]=find(s[],s[X]);  

 【三个操作】

1、find函数,一步步往上找到x的父节点【x的父节点和x是“同一个蚂蚱”】

2、递归返回时,s[s[s[n-1]]]=s[s[s[s[n]]]]。路径一下子压短了

3、递归返回时,return的始终是“下图”的“棕色节点”

        4、最终是返回s[s[s[s[n]]]]——根节点

【结果】:

 【附加】

        【转】

我们知道递归危险,当路径上压缩的节点太多时,可能会让你的系统堆栈爆掉。

但“伪递归”不会。非常容易变成循环【?】,编译器就帮助你优化成循环代码。

【引理】 

 

 

 

【......】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值