社区
数据结构与算法
帖子详情
讨论:集合相关算法
liaomingxue
2010-07-10 05:47:56
兄弟最近的一个算法是一个有限离散整数集合相关的问题,希望大家能给出一些建议。
1 集合:有限非负整数集合,集合的基(集合中元素的个数)最大为32768,集合可以无序也可以有序,元素是离散的不保证连续。
2 要求集合包含关系,集合与元素的属于关系,多个集合交集三个方面操作的高效算法
...全文
150
7
打赏
收藏
讨论:集合相关算法
兄弟最近的一个算法是一个有限离散整数集合相关的问题,希望大家能给出一些建议。 1 集合:有限非负整数集合,集合的基(集合中元素的个数)最大为32768,集合可以无序也可以有序,元素是离散的不保证连续。 2 要求集合包含关系,集合与元素的属于关系,多个集合交集三个方面操作的高效算法
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
Java.Concurrency.in.Practice.pdf
Java.Concurrency.in.Practice.pdf
深度学习最常用的学习
算法
:Adam优化
算法
正文共6547个字,32张图,预计阅读时间17分钟。听说你了解深度学习最常用的学习
算法
:Adam优化
算法
?-深度学习世界。深度学习常常需要大量的时间和机算资源进行训练,这也是困扰深度学习
算法
开发的重大原因。虽然我们可以采用分布式并行训练加速模型的学习,但所需的计算资源并没有丝毫减少。而唯有需要资源更少、令模型收敛更快的最优化
算法
,才能从根本上加速机器的学习速度和效果,Adam
算法
正为此而生!Ad
集合
运算在
算法
中的应用
1.背景介绍
集合
运算在
算法
中的应用是一种重要的数据处理技术,它可以帮助我们更好地理解和解决各种复杂问题。
集合
运算是一种用于处理
集合
的
算法
,它可以帮助我们更好地理解和解决各种复杂问题。在本文中,我们将
讨论
集合
运算在
算法
中的应用,以及它们如何帮助我们解决各种问题。 2.核心概念与联系
集合
运算是一种用于处理
集合
的
算法
,它们可以帮助我们解决各种问题。
集合
运算包括以下几种: 交集(Inters...
数据结构与算法
33,027
社区成员
35,335
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章