请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Size 优化 Rank优化对比疑问

UnionFind3 :4.2729478 s
UnionFind4 :4.341375 s
UnionFind3 :4.2402221 s
UnionFind4 :4.2683184 s
UnionFind3 :4.185095 s
UnionFind4 :4.3035511 s

上面三次结果都是在千万的情况下,每次都是size优化优于rank优化

UnionFind3 :0.2544043 s
UnionFind4 :0.2153508 s
UnionFind3 :0.2503376 s
UnionFind4 :0.2095983 s

上面两次结果都是百万的情况下,rank优于size,这是为什么呢?

正在回答

1回答

rank 的优化只是“理论”上比 size 的优化更优,因为“理论”上可以让整个并查集的高度更低。但对于实际情况,有可能因为测试用例本身不会形成那么高的树,从而使得优化本身更费时间(因为需要更多多余的判断和操作)。


这就好比,归并排序理论上比插入排序更快,但是,如果数组本身有序,其实插入排序更快;如果数据量比较小,也很有可能插入排序更快。


所有的优化都不能保证在所有的情况下都更优。关键是:

1)对于极端情况,优化的效果更好;

2)对于平均情况,优化的效果不差。


继续加油!:)

6 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信