当前位置: 首页 > ai >正文

5.5.2_2并查集的进一步优化

知识汇总:

Find操作优化:

find操作主要是通过S[]数组一路向北来找给定节点的根节点,从给定节点到找到根节点所经过的节点路径称为查找路径。压缩路径就是让查找路径变短。

压缩路径过程:如开始让L节点找根节点A,那么会根据Find操作一路向北依次找到E、B、A,即LEBA为查找路径,压缩路径就是先找到根节点A,再将查找路径上的所有节点都挂到根节点下,即找到了根节点是A,查找路径上的节点为LEB都挂到根节点下,即index(A)=0,index(L)=11,index(E)=4,index(B)=1让S[11]=index(A)=0,S[4]=index(A)=0,S[1]=index(A)=0(开始B的S值就是0不用改),则此时L再想找根节点直接查找1次就直达根节点A了

代码实现:

根据给定节点x数组下标先while循环通过S[]>=0找到根节点root,再while循环对找根节点过程中的节点的S值=root数组下标即挂到根节点下边,即给定节点->根节点的路径已经变成了1即压缩了路径,等下一次再找给定节点的根节点时就还可使用已经压缩好的路径查找,提高了效率,时间复杂度能大概提高到O(1)(咋还找,这是用了缓存吗,给定节点的路径压缩完路径后能一直保持不变???)

优化:

Find操作-----》压缩路径,使得构造树的高度不超过O(α(n)) 近似于O(1),union操作------》小树合并大树,使得构造树的高度不超过O(log2n),O(α(n))<< O(log2n)压缩路径很优秀,旨在目的都为降低树的高度

优化汇总:

union操作优化前:find操作查找根节点最坏情况为树为单支h较高情况,最坏时间复杂度为O(n)即要从底部查到第一个节点,在进行n个独立元素的union操作时需要unin的次数为n-1次(如2个元素union,则需要1次union操作),且要先find再union,而find的时间复杂度是O(n),则union操作时间复杂度为O(n²)即n*O(n)

union操作优化后(小树合并大树):union操作优化小树合并大树后,会让树的高度不超过log2n,则find操作的时间复杂度不超过O(log2n),在进行n个独立元素的union操作时需要n-1次union,且进行union操作时先find再union,而find的时间复杂度是O(log2n),则union操作时间复杂度为O(nlog2n)

Find操作优化后(压缩路径):find操作压缩路径后会让树的高度不超过O(α(n)),则find操作的时间复杂度是O(α(n)),在进行n个独立元素的union操作时需要n-1次union,且进行union操作时先find再union,而find的时间复杂度是O(α(n)),则union操作时间复杂度为O(α(n))[即(n-1)*O(α(n))=O(nα(n))]

 

。。。。。。。。。。。。。 

又是啰嗦的一天。。。。。。 

http://www.xdnf.cn/news/14415.html

相关文章:

  • 运算符与优先级
  • Docker环境下的EFK日志分析实践:从Filebeat采集到Kibana可视化的完整部署指南
  • 【LeetCode 207】课程表(有向无环图 DAG、拓扑排序)
  • 在C++中进程间通信(IPC)
  • 数据库学习(七)——MySQL执行引擎
  • Google机器学习实践指南(非线性特征工程解析)
  • 人工智能学习37-Keras手写识别预测
  • 对于数据库触发器自动执行的理解
  • Java类的继承
  • Luckfox Pico Pi RV1106学习<3>:支持IMX415摄像头
  • BeckHoff <---> Keyence (MD-X)激光 刻印机 Profient 通讯
  • Elasticsearch:什么是混合搜索?
  • AIGC 基础篇 高等数学篇 06 向量代数与空间解析几何
  • 人月神话-学习记录
  • SQL Developer 表复制
  • Python安装与使用教程
  • Maven在依赖管理工具方面的内容
  • Java多线程通信:wait/notify与sleep的深度剖析(时序图详解)
  • Spring是如何实现有代理对象的循环依赖
  • 【SQLAlchemy系列】 SQLAlchemy 中的多条件查询:or*与 in*操作符
  • 智能土木通 - 土木工程专业知识问答系统02-RAG检索模块搭建
  • AC耦合与DC耦合
  • 体验AI智能投资!AI Hedge Fund了解一下
  • Java可变参数方法的常见错误与最佳实践
  • hyper-v虚拟机使用双屏
  • iOS —— UI(2)
  • Spring Cloud 所有组件全面总结
  • 「AI大数据」| 智慧公路大数据运营中心解决方案
  • Java类加载器与双亲委派模型深度解析
  • DNS递归查询