几种合并查找算法
来源:互联网 发布:三国志乱舞软件 编辑:程序博客网 时间:2024/06/15 13:32
问题:
实际中需要知道拓扑图中的2点是否连通,比如电路板、地图中不同的城市等等,这种问题可以转化为合并查找问题,相应的求解可以用合并查找算法。
基本思想是转化为长度为N的数组和已知M对连通对,其值表示了两个点是否连通。
合并查找算法 (union-find)可以有以下几种:
1、快速查找算法
mark连通时遍历整个数组,使得连通指向最新的节点
2、快速合并算法
不需要遍历整个数组,只遍历已连通的子串,然后合并新加入连通节点对应的根节点
3、带权的快速合并算法
为避免合并的最坏情况,利用额外的数组表示连通子串长度,保证合并时短串合并到长串。查找代价为logN
4、路径压缩的带权快速合并算法
为减少查找代价,利用路径压缩,使得查找最小(1或者2),但是实现代价复杂
5、等分的带权快速合并算法
折中的路径压缩,合并时向上跳一个节点,实现简单,查找代价也大为减少。
- 几种合并查找算法
- 几种查找算法
- 几种查找算法
- 几种查找算法
- 几种常用查找算法
- 查找合并算法笔记
- 总结:几种常见的查找算法
- 几种常见的查找算法
- 查找的几种简单算法
- 几种查找算法的比较
- 几种查找算法总结与比较—顺序查找、有序查找、散列表查找
- 几种常用的查找和排序算法
- 几种常见的查找算法之比较
- 几种二分查找算法的代码和比较
- 几种常见的查找算法之比较
- 【面试必读(编程基础)】几种查找算法
- 数据结构------php写出几种排序算法以及二分法查找算法
- 几种常见的查找
- 使用google搜索特定类型的文档
- Android开发
- Javascript跨域访问解决方案(一)
- PHP实现MVC开发: 一个简单的MVC
- Android中的sp和wp指针
- 几种合并查找算法
- Varnish安装搭建配置缓存服务器
- sqlplus /nolog
- 关于壁纸镶嵌问题 ”VM won't let us allocate“
- Android智能指针 (sp & wp)
- tinyxml在wince下的用法
- select
- 海量数据处理专题(三)——Hash
- C#发送电子邮件的名称空间:System.Net.Mail