社区
数据结构与算法
帖子详情
讨论:集合相关算法
liaomingxue
2010-07-10 05:47:56
兄弟最近的一个算法是一个有限离散整数集合相关的问题,希望大家能给出一些建议。
1 集合:有限非负整数集合,集合的基(集合中元素的个数)最大为32768,集合可以无序也可以有序,元素是离散的不保证连续。
2 要求集合包含关系,集合与元素的属于关系,多个集合交集三个方面操作的高效算法
...全文
168
7
打赏
收藏
讨论:集合相关算法
兄弟最近的一个算法是一个有限离散整数集合相关的问题,希望大家能给出一些建议。 1 集合:有限非负整数集合,集合的基(集合中元素的个数)最大为32768,集合可以无序也可以有序,元素是离散的不保证连续。 2 要求集合包含关系,集合与元素的属于关系,多个集合交集三个方面操作的高效算法
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jovial__
2010-07-11
打赏
举报
回复
用位图表示,进行按位与等相关操作,应该是最快的了,慢的话感觉有可能是实现的问题。
超级大笨狼
2010-07-11
打赏
举报
回复
[Quote=引用 1 楼 zentropy 的回复:]
包含关系:O(n1+n2) 分别判断一个集合中的元素是否在另外一个当中
多个集合交:O(n1+n2+...+nk)
[/Quote]
其实用不着,只要循环最小的集合就可以得到包含和交集
所以
集合包含关系O(min(n))
多个集合交集O(min(n))
超级大笨狼
2010-07-11
打赏
举报
回复
可以用并查集和哈希表两种做法。
本人还是喜欢哈希表,最好你使用的语言有现成的。
如果用Hash表的话。
集合包含关系O(min(n))
集合与元素的属于关系O(1)
多个集合交集O(min(n))
liaomingxue
2010-07-10
打赏
举报
回复
楼上的也不错,我们目前用的是64bit的long进行数据组织的,但感觉还是慢,应该还可以更快
jovial__
2010-07-10
打赏
举报
回复
用位图表示集合。32768用4096个8位int型就可以表示了。
包含关系:对二者进行相与, 出现原数字,那么肯定是包含关系。谁包含谁,只需比较二者的大小就行了。
属于关系:只要判断对应位是否为1就行了。
多个集合交:一样对多个集合进行按位与。然后找出对应为1的序号。
liaomingxue
2010-07-10
打赏
举报
回复
楼上的还不错,基本上是目前的实现水平。
不过,包含关系应该是O(n1)的,因为只需要对一个集合进行循环判定其元素是否在另一个集合之中(注意,求包含关系一般是单向的,即求A是否包含B,一般不需要同时要求反过来确定B是否包含A)
zentropy
2010-07-10
打赏
举报
回复
先来一块大砖头吧:)
用一个hash表表示一个集合
包含关系:O(n1+n2) 分别判断一个集合中的元素是否在另外一个当中
属于关系:O(1)
多个集合交:O(n1+n2+...+nk)
算法
引论:一种创造性方法.pdf
《
算法
引论:一种创造性方法》是国际
算法
大师乌迪.曼博(Udi Manber)博士撰写的一本享有盛誉的著作。全书共分12章,是按照领域进行分类的:第1章到第4章为介绍性内容,涉及数学归纳法、
算法
分析、数据结构等内容;第5章提出了与归纳证明进行类比的
算法
设计思想;第6章到第9章分别给出了几个领域的
算法
,如序列和
集合
的
算法
(排序、序列比较、匹配等)、几何
算法
(凸包和交集问题等)、代数和数值
算法
(矩阵乘法、快速傅里叶变换等);第10章涉及归约或约简,也是第11章的序幕,而后者涉及NP完全问题;第12章则介绍了并行
算法
;最后是部分习题的答案及参考文献。《
算法
引论:一种创造性方法》的特色有二,旨在提高读者的问题求解能力,使读者能够理解
算法
设计的过程和思想:一是强调
算法
设计的创造性过程,注重
算法
设计背后的创造性思想,而不拘泥于某个具体
算法
的详细
讨论
;二是将
算法
设计类比于定理归纳证明,揭示了
算法
设计的基本思想和本质。
计算机程序设计艺术中文版高清123卷.pdf
计算机程序设计艺术高清123卷.rar
深度学习最常用的学习
算法
:Adam优化
算法
正文共6547个字,32张图,预计阅读时间17分钟。听说你了解深度学习最常用的学习
算法
:Adam优化
算法
?-深度学习世界。深度学习常常需要大量的时间和机算资源进行训练,这也是困扰深度学习
算法
开发的重大原因。虽然我们可以采用分布式并行训练加速模型的学习,但所需的计算资源并没有丝毫减少。而唯有需要资源更少、令模型收敛更快的最优化
算法
,才能从根本上加速机器的学习速度和效果,Adam
算法
正为此而生!Ad
集合
运算在
算法
中的应用
1.背景介绍
集合
运算在
算法
中的应用是一种重要的数据处理技术,它可以帮助我们更好地理解和解决各种复杂问题。
集合
运算是一种用于处理
集合
的
算法
,它可以帮助我们更好地理解和解决各种复杂问题。在本文中,我们将
讨论
集合
运算在
算法
中的应用,以及它们如何帮助我们解决各种问题。 2.核心概念与联系
集合
运算是一种用于处理
集合
的
算法
,它们可以帮助我们解决各种问题。
集合
运算包括以下几种: 交集(Inters...
一起自学SLAM
算法
:8.2 Cartographer
算法
连载文章,长期更新,欢迎关注:Gmapping代码实现相对简洁,非常适合初学者入门学习。但是Gmapping属于基于滤波方法的SLAM系统,明显的缺点是无法构建大规模的地图,这一点已经在第7章中
讨论
过了。而基于优化的方法则可以构建大规模的地图,基于优化的方法实现的激光SLAM
算法
也有很多,比如Hector、Karto、Cartographer等。
数据结构与算法
33,028
社区成员
35,337
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章