首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Andy_Ron
掘友等级
软件工程师
不知名bug工程师
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
114
文章 109
沸点 5
赞
114
返回
|
搜索文章
最新
热门
【译】Swift算法俱乐部-最大公约数算法
两个数字a和b的 最大公约数(或最大公因数)是将a和b整除都没有余数的最大正整数。 例如,gcd(39, 52) = 13,因为13除以39(39/13 = 3)以及52(52/13 = 4),而且没有比13更大的数字。 在某些时候你可能不得不在学校里了解这一点。:-) 找到两…
【译】Swift算法俱乐部-字典树
Trie(在一些其他实现中也称为前缀树或基数树)是用于存储关联数据结构的特殊类型的树。 Trie作为一个字典可能如下所示: 存储英语是Trie的主要用处。 Trie中的每个节点都代表一个单词的单个字符。 然后,一系列节点组成一个单词。 字典树对某些情况非常有用。 以下是一些优点…
【译】Swift算法俱乐部-八叉树
八叉树是树,其中每个内部(非叶节点)节点有八个子节点。 例如,通常用于游戏中的碰撞检测。 考虑以下问题:您需要在3D空间中存储多个对象(每个对象在某个位置使用X,Y和Z坐标表示)然后您需要回答哪些对象位于某个3D区域。 一个天真的解决方案是将点存储在一个数组中,然后迭代这些点并…
【译】Swift算法俱乐部-四叉树
四叉树是一种树,其中每个内部(非叶节点)节点有四个子节点。 考虑以下问题:您需要存储多个点(每个点是一对X和Y坐标),然后您需要回答哪些点位于某个矩形区域。一个天真的解决方案是将点存储在一个数组中,然后迭代这些点并分别检查每个点。 该解决方案花费O(n)。 四叉树最常用于通过递…
【译】Swift算法俱乐部-线段树
我很高兴向您介绍线段树(Segment Tree)。 它实际上是我最喜欢的数据结构之一,因为它非常灵活且实现简单。 假设你有一个某种类型的数组a和一些关联函数f。 例如,函数可以是求和,乘法,最小,最大,最大公约数等。 我们想查询这个数组3到7区间,并执行函数"sum"。 这意…
【译】Swift算法俱乐部-伸展树
伸展树是一种数据结构,在结构上与平衡二叉搜索树相同。 在伸展树上执行的每个操作都会导致重新调整,以便快速访问最近运行的值。 在每次访问时,树被重新排列,并且使用一组特定的旋转将访问的节点移动到树的根,这些旋转一起被称为Splaying。 给定节点a,如果a不是根节点,a具有子节…
【译】Swift算法俱乐部-环形缓冲区
也称为循环缓冲区。 基于数组的队列的问题是在队列后面添加新项目很快,O(1),但是从队列前面删除项目很慢,O(n)。删除速度很慢,因为它需要在内存中移动剩余的数组元素。 实现队列的更有效方法是使用环形缓冲区或循环缓冲区。 这是一个概念性地回绕到开头的数组,因此您永远不必删除任何…
【译】Swift算法俱乐部-有界优先队列
有界优先级队列类似于常规优先队列,除了可以存储的元素数量有固定的上限。在队列处于满容量时,将新元素添加到队列时,具有最高优先级值的元素将从队列中弹出。 在这里,我们认为具有最高优先级值的对象是最重要的(因此这是max-priority队列)。 优先级值越大,我们关注的对象就越多…
【译】Swift算法俱乐部-哈希集合
集合是元素的集合,有点像数组但有两个重要的区别:集合中元素的顺序不重要,每个元素只能出现一次。 如果以下是数组,它们都会有所不同。 但是,它们都代表相同的集合: 因为每个元素只能出现一次,所以将元素写入的次数并不重要 —— 只有其中一个元素有效。 从Swift 1.2开始,标准…
【译】Swift算法俱乐部-有序集
我们来看看苹果如何实现有序集。 显着的区别是数组没有排序。 插入时,数组中的元素是相同的。 将数组映像为不重复且具有 O(logn) 或 O(1) 搜索时间。 这里的想法是使用数据结构来提供 O(1) 或 O(logn) 时间复杂度,因此很容易考虑哈希表。 indexOfKey…
下一页
个人成就
文章被点赞
282
文章被阅读
75,229
掘力值
2,277
关注了
48
关注者
1,756
收藏集
11
关注标签
13
加入于
2017-09-09