随笔分类 - 数据结构
some notes
摘要:[toc] 一、 定义 我们知道,左式堆每次操作的时间界是$O(logN)$。二项队列支持 合并、插入、删除最小值 ,每次插入的平均时间为 常数时间 ,而最坏时间是$O(logN)$。 二项队列: 不是一棵堆序的树,而是堆序的树的集合,成为 森林 。 森林的每棵树都是 二项树(binomia
阅读全文
摘要:[toc] 一、定义 左式堆是为了有效的支持合并操作(merge),将2个堆进行合并,不只是合并2个数组,还要维护其中的堆结构。 左式堆 像二叉堆那样具有结构性和有序性。也有堆序性质,也是二叉树,但它不是平衡的,而是趋向于非常不平衡。 1.1 一些特点和定义 我们为左式堆做如下定义: 零路径
阅读全文
摘要:[toc] 一、定义 一般在优先队列里面说“堆”这个词,指的都是 二叉堆 这种数据结构实现。堆的最大结构特定是能很顺利的找到最小值! 堆是一棵 完全二叉树 ,他总是满足,父节点的元素值小于其子节点的元素。并且每个子树都是堆! 堆是一棵完全二叉树 父节点元素小于(或等于)子节点元素 完全二叉树
阅读全文
摘要:一、说明 在有些情况下,当有许多任务同时出现时,需要程序堆这些任务进行调度,就像windows的进程管理系统,为进程分配时间片,就是这种情况。 操作系统调度程序必须决定在若干进程中运行哪个进程。一般一个进程只被允许运行一个固定的时间片。一般来说,短的作业要尽可能快的结束,这一点很重要,因此在
阅读全文
摘要:[toc] 1、定义 前言: 线性探测法是在散列位置的相邻点开始探测,这会引起很多问题,于是各种优化版本例如平方探测、双散列等被提出来改进其中的聚集问题。但是探测相邻位置和第二次散列相比,显然探测相邻位置更有优势,所以线性探测仍然是实用的,甚至是最佳选择。 1.1 描述 跳房子散列的思路:
阅读全文
摘要:[toc] 完美散列 一、介绍 在部分散列表(分离链接,开放定址)中,当 装填因子$\lambda$合理,散列函数合适的 情况下,期望的插入、删除、和查找的平均时间都是$O(1)$,即在没有冲突的情况下计算散列所需要的时间。 但是在 最坏情况(冲突)下 ,查找的最坏情形是多少? 我们期望
阅读全文
摘要:[toc] 再散列 1、定义 当散列表的内容达到装填因子$\lambda$时,散列表需要进行 扩容 。扩容后形成新的散列表, 将原散列表的值再散列到新的散列表 ,这个过程叫做 再散列 。 2、图解 2.1 图解说明 在大小为7的散列表 图1 中,我们再插入 23 ,此时$\lambda$达到
阅读全文
摘要:[toc] 一、介绍 分离链接散列算法的缺点是使用链表。在新单元分配地址需要时间,不同的语言需要的时间不一致,这会导致算法的速度有些减慢。分离链接法也是 固定定址 的一种,与之对应的另有一种叫 开放定址法 ,意味着散列算法得到的地址不是固定的,或者说 不是一定要遵守 的。 开放定址 在散列算
阅读全文
摘要:[toc] 一、介绍 散列表的实现被叫做 散列 ,是一种用于常数平均时间执行插入、删除和查找的技术。通常做法是保存 key value 的数据结构,理想的散列表数据结构不过是 具有固定大小的数组 , key 作为关键字, value 是真正存储的数据。将不同的 value 根据各自的 key 存
阅读全文
摘要:1、AVL树 带有平衡条件的二叉查找树,所以它必须满足条件: 1 是一棵二叉查找树 2 满足平衡条件 1.1 平衡条件: 1)严格的平衡条件:每个节点都必须有相同高度的左子树和右子树(过于严格而不被使用)。 2)AVL树的平衡条件:每个节点的左子树和右子树的高度最多差1的二叉查找树(空树的高度定义为
阅读全文
摘要:网站的伸缩性架构中,分布式的设计是现在的基本应用。 在memcached的分布式架构中,key-value缓存的命中通常采用分布式的算法 一、余数Hash 简单的路由算法可以使用余数Hash: node编号=HashCode(key)%服务器数目 例如: key=‘BEIJING'的hash值为49
阅读全文
摘要:1、定义 对于每个节点X,它的左子树中所有的项的值小于X的值,右子树所有项的值大于X的值。 如图:任意一个节点,都满足定义,其左子树的所有值小于它,右子树的所有值大于它。 2、平均深度 在大O模型中,二叉查找树的平均深度是O(logN) 。 证明:查找某个节点x的算法深度,即从根出发找到节点x的路径
阅读全文
摘要:1、定义 二叉树是一颗树,其中每个节点最多有两个子节点(最多2个儿子) 图: 特征: 1.每个节点最多2个儿子。 2.分为左子树和右子树(相对于树来说,一般树不分左子树和右子树,而二叉树一定分左右子树)。 ps 盗图一张: 2、二叉树的分类 2.1 满二叉树 特点:N阶的二叉树,除了叶结点外每一个结
阅读全文
摘要:一棵树: 一、基础概念:除上图描述之外 1.路径:节点O到H的走向,叫做O到H的路径。 2.路径长:该路径的边的条数。 3.深度:对任意节点i,节点i的深度是根节点到i的唯一路径的长。所以,根的深度为0。一棵树的深度等于它最深的叶子的深度,等于这颗树的高。 4.高:任意节点i的高,是节点i到最一片树
阅读全文
摘要:求幂运算的算法简述,在常规按次数乘的情况下,增加点思路,可以优化时间!
阅读全文

浙公网安备 33010602011771号