数据结构
文章平均质量分 83
「已注销」
这个作者很懒,什么都没留下…
展开
-
关于B树的一点理解
首先,需要强调的是B树对应的英文名字就是B-Tree(名字中的-其实是连字符),并没有一种B减树。背景目前有许多不同的技术可用来在计算机系统中提供存储能力。例如,硅制的存储芯片,速度比较快,但是却造价相对昂贵,且失电后存储内容丢失;磁存储技术造价相对比较低,失电后不会丢失存储内容,但是却速度慢。为了在容量,速度及成本三者上取得一个平衡,目前大多数的计算机都采用了多级存储体系。即使用硅制的存储芯...原创 2018-11-26 03:36:37 · 1382 阅读 · 0 评论 -
关于B+树的一点理解
B+树是B树的一个升级版,相对于B树来说B+树更充分的利用了结点的空间,让查询速度更加稳定,其速度完全接近于二分法查找。为什么说B+树查找的效率比B树更高、更稳定呢?让我们先来看看一个m阶的B树具有一些什么特征:根节点至少有两个子节点(即根结点至少要有一个关键字)。每个中间结点都包含k-1个关键字和k个子节点,其中m/2 ≤\leq≤ k ≤\leq≤ m。每一个叶子结点都包含k-1个元素...原创 2018-11-27 02:14:23 · 1439 阅读 · 0 评论 -
关于红黑树的一点理解
本文支队红黑树涉及的概念做一些总结,对于红黑树的插入(红黑树的插入操作分为三种情况),删除(红黑树的删除操作分为四种情况)等比较复杂的操作(插入删除等操作都可以通过变色,左旋,右旋等操作来实现)不做总结,如果感兴趣的话可以参考《算法导论》红黑树是二叉查找树的一种,为了理解红黑树,让我们先来看看二叉查找树。二叉查找树二叉查找树对应的英文名称是Binary Search Tree(BST),是一...原创 2018-12-02 23:48:57 · 619 阅读 · 0 评论 -
关于跳跃表的一点理解
通过前面的总结,我们知道红黑树是一种存在于内存中,可以保证在最坏的情况下,对红黑树进行例如search,insert,以及delete等基本的动态集合操作的时间复杂度为O(lg n)。但是显而易见,红黑树实现起来比较复杂,尤其是对红黑树进行insert和delete操作。并且在红黑树中进行范围查询时需要对红黑树进行中序遍历,这也是比较复杂的操作。那有没有一种能确保对动态集合search,inser...原创 2018-12-05 00:25:50 · 2893 阅读 · 1 评论 -
分布式哈希表与Kademlia算法
在我们总结分布式哈希表之前不妨让我们先来回想一下,什么是哈希?下面是wikipedia的定义:散列(英语:Hashing)是计算机科学中一种对数据的处理方法,通过某种特定的函数/算法(称为散列函数/算法)将要检索的项与用来检索的索引(称为散列,或者散列值)关联起来,生成一种便于搜索的数据结构(称为散列表)。旧译哈希(误以为是人名而采用了音译)。它也常用作一种信息安全的实现方法,由一串数据中经过...原创 2018-12-07 01:36:48 · 3068 阅读 · 1 评论 -
关于一致性哈希的一点理解
一致性哈希是分布式哈希表(DHT)其中一种实现,如读者还不是很了解分布式哈希可以阅读这篇博客在开始介绍一致性哈希概念之前,让我们先来看看...原创 2018-12-11 23:31:45 · 425 阅读 · 0 评论