并查集--算法,优化,变种

一、定义
并查集是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题。
基础的并查集能实现以下三个操作:1.建立集合;2.查找某个元素是否在一给定集合内(或查找一个元素所在的集合); 3.合并两个集合.“并”“查”“集”三字由此而来。
并查集能解决的问题一般可以转化为这样的形式:初始时n个元素分属不同的n个集合,通过不断的给出元素间的联系,要求实时的统计元素间的关系(即是否存在直接或间接的联系)。
并查集本身不具有结构,可以用数组、链表以及树等实现。最常用的是数组实现。

二、实现
数组实现:
建立标记数组father,用father[i]表示元素i所属集合的标记。


图示

1.建立集合
开始时每个元素各自独立,可以把每个元素所属集合标记为其自身序号。

void make()
{
	int i;
	for(i=1;i<=n;i++)
    		father[i]=i;
}

2.合并集合&查找元素所属集合
find函数返回的是元素所属集合的根结点(别忘了并查集是树型的数据结构)。方法就是循环或递归,寻找当前结点的父结点,父结点的父结点,父结点的父结点的父结点......直到找到一个结点的父结点是它自己,那么它就是根结点。

int find(int
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
一、软件功能 富盛SBO插件集基于富盛SBO程序开发框架,主要包括以下功能模块: 富盛Addon插件通用权限管理 建立于富盛Addon程序开发框架的所有模块产品的通用权限管理,可以细化管理到业务模块中的功能项目,比如某个业务窗口的浏览权限、新增权限、编辑权限、删除权限等都可以纳入综合管理。 界面参见:http://blog.vsharing.com/foresun/A680619.html 富盛SBO固定资产管理 为了适应中国企业的固定资产管理,遵循国家财务行业对固定资产的折旧方法和要求,支持不折旧、直线折旧、快速折旧、工作量折旧等常用的折旧方式,并对资产增加、资产减少的各种交易方式提供了支持,由于提供了灵活的交易自定义功能,软件能够满足当前国内工业、商业企业的固定资产管理需要。 功能参见:http://blog.vsharing.com/foresun/A680619.html 富盛SBO金税接口管理 富盛Sbo金税接口模块适用于包括工业企业、商品流通等所有经营管理体制的需要企业Sbo资源管理系统同金税工程进行数据交互的企业,独立外资、中外合资、本土中资企业都可以选用富盛Sbo金税接口管理模块协助企业实现Sbo企业资源管理同国家强制规定的金税接口的信息交互。 操作手册参见: http://blog.vsharing.com/foresun/A683474.html 富盛SBO供应商成本利润结算分析 [强烈推荐] 针对当前商业运行中的供应商对于经销商的优惠政策、促销政策,联系到业务运行中的物料、赠品、赠券等费用,以及供应商政策之外或者无法通过供应商政策体现的月返等季节性或者政策性返利补差等,通过本软件进行综合集成管理。实现了经营期间经营商品的销售、成本、政策调整后实际成本、毛利、毛利率、经营费用与返利补差之后的企业真正的利润与成本分析。同时提供了对品类、货品、结算类型、供应商、业务主管、业务代表、经营单品的销售、成本、政策返利、经营费用、供应商返补的分类分析。 参见:http://blog.vsharing.com/foresun/A626306.html。当前功能要比参见资料强大的多,使用便知。 富盛SBO企业经营分析 针对Sbo中的企业经营分析功能薄弱的情况,提供了一个强大自定义分析工具,通过自定义之后,软件自动完成对企业关注的数据的综合分析。企业可以完成通过分析工具分析企业经营情况、利润情况、费用使用情况,弥补了Sbo的利润表、资产负债表等功能不足的缺陷。 一个分析实现例示,参见:http://blog.vsharing.com/foresun/A601436.html 当前版本支持多分析项目,就是说不管可以实现上述实例的项目分析,还可以另行定义其它的,比如利润分析、资产负债分析等等。 软件还支持跨数据库的数据分析,就是说,即使业务数据不在Sbo数据库中,由于分析软件支持存储过程、视图和数据表之上的数据分析,所以可以实现跨业务数据库的经营分析。我们就曾经为一家企业的三个Sbo业务数据库通过本软件进行综合业务分析。 富盛SBO入库验收管理 [强烈推荐] 针对Sbo中直接引用订单入库的简易管理,很多企业希望采购到货之后需要根据到货单增加到货验收,本软件模块就是为了实现这个业务需求。在Sbo标准业务流程中插入质检验收环节,只有验收业务进行处理之后的采购订单、退货单才能被采购入库业务和贷项凭证进行引用,继续接下来的其他业务。 富盛SBO员工工资管理 [强烈推荐] 建立于富盛Sbo插件程序开发框架,运行于Sbo之上的企业员工工资管理,除了普通的工资管理之外,本软件通过三种方式来实现员工的考核工资:数据提取、数据计算、数据录入。数据提取通过一个开放性的统一管理方式从Sbo或者第三方的Addon甚至在其它的软件中(必需SQL Server数据库)中通过存储过程、视图、数据表提取数据,从而可以同考勤系统、绩效考核系统中的数据进行集成;同时支持复杂数据分析,为绩效考核提供了充分的业务接口,也使工资管理软件提供了强大的扩展性和实用性。 二、富盛SBO程序开发框架 SBO行业的朋友对富盛软件应该不陌生,对富盛SBO程序开发框架也应该有所耳闻。富盛SBO程序开发框架是供广大SBO Addon开发爱好者使用的终生免费程序包,包含了富盛软件Sbo Addons程序开发框架企业版的所有功能,比如集成了基于FastReport的打印与报表查询功能、透过SBO限制的键盘输入捕捉功能、序列号自动生成器、集成知名WINRAR开源压缩等等,富盛软件在其博客上介绍的所有Addon实现技巧和功能。 三、版权声明 您可以任意复制、安装和使用本软件,任何获得此软件的用户均自动获得本软件的使用权,但是富盛软件保留对此软件的所有权利。 请尊重作者
k-means聚类算法是一种常用的无监督学习算法,用于将数据集划分为k个不同的簇。它的优化主要包括以下几个方面: 1. 初始化优化:k-means算法对初始聚类中心的选择非常敏感。常见的初始化方法有随机选择、K-means++和密度峰值等。其中,K-means++通过选择距离已选中聚类中心较远的点作为新的聚类中心,能够更好地初始化聚类中心,提高算法的收敛速度和聚类效果。 2. 距离度量优化:k-means算法通常使用欧氏距离作为样本点之间的距离度量。但对于某些特定数据集,欧氏距离可能不适用。因此,在应用k-means算法时,可以根据实际情况选择合适的距离度量方法,如曼哈顿距离、余弦相似度等。 3. 迭代终止条件优化:k-means算法通常通过迭代更新聚类中心直到满足终止条件来完成聚类过程。常见的终止条件有最大迭代次数、聚类中心变化率小于阈值等。合理选择终止条件可以提高算法的效率和准确性。 4. 外部指标优化:k-means算法的聚类结果通常需要通过外部指标进行评估,如轮廓系数、互信息等。通过选择合适的外部指标,并结合其他优化方法,可以提高聚类结果的质量。 5. 并行化优化:k-means算法是一种迭代的算法,每次迭代都需要计算样本点与聚类中心之间的距离。对于大规模数据集,这个计算过程可能非常耗时。因此,可以采用并行化的方法,如使用多线程或分布式计算框架,加速k-means算法的执行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值