从quick find到 quick union 到 weighted quick union 到 路径压缩 的算法优化过程
quick find
染色思想,合并数据时,只需将数据的“颜色”改变到和自己一致
数据查找复杂度O(1),因为可以通过“颜色”直接查找
数据合并复杂度O(n),合并时需要同时改变所有数据的“颜色”
quick union
利用树结构,合并数据时,将数据一整棵树连到自己的分支上,查找时,从下向上查找根节点
数据查找复杂度O(height),根据树高度,查找到根节点的高度
数据合并复杂度O(height),根据树高度,需要查找到树的根节点,合并根节点
weighted quick union
根据树的节点数量,降低构建出的树高度,最后接近一个完全二叉树
数据查找复杂度O(logn),完全二叉树,每次查找都比较均等
数据合并复杂度O(height),合并也是需要查找的复杂度
路径压缩
在查找树的根节点的过程中,让每个子节点都直接指向根节点