随笔分类 -  数据结构

摘要:区块链特点 一种特殊的分布式数据库,没有管理员,彻底无中心 写入数据比较慢,要求实时的场景不适配 能耗比较大,选择使用时需评估成本和目的(公益还是盈利) 所有节点都全量存储数据,并同时支持读写 区块链的组成 区块链由一个个区块组成,区块很像数据库的记录,每次写入数据,就是创建一个区块。每个区块包含两 阅读全文
posted @ 2018-01-17 09:34 wade&luffy 阅读(1137) 评论(0) 推荐(1) 编辑
摘要:哈夫曼编码 哈夫曼编码(Huffman Coding)是一种编码方式,也称为“赫夫曼编码”,是David A. Huffman1952年发明的一种构建极小多余编码的方法。在计算机数据处理中,哈夫曼编码使用变长编码表对源符号进行编码,出现频率较高的源符号采用较短的编码,出现频率较低的符号采用较长的编码 阅读全文
posted @ 2018-01-05 10:12 wade&luffy 阅读(1307) 评论(0) 推荐(1) 编辑
摘要:区间嵌套法原理 如果节点区间[clft, crgt]与[plft, prgt]存在如下关系:clft >= plft and crgt <= prgt,则[plft, prgt]区间里的点包含[clft, crgt]的子节点。基于此假设我们就可以通过对区间的不断的向下划来获取新的区间。 举例:如果在 阅读全文
posted @ 2017-10-25 17:37 wade&luffy 阅读(566) 评论(0) 推荐(0) 编辑
摘要:在基于数据库的一般应用中,查询的需求总要大于删除和修改。为了避免对于树形结构查询时的“递归”过程,基于Tree的前序遍历设计一种全新的无递归查询、无限分组的左右值编码方案,来保存该树的数据。优点是查询非常的方便,缺点就是每次插入删除数据涉及到的更新内容太多,如果树非常大,插入一条数据可能花很长的时间 阅读全文
posted @ 2017-10-25 15:29 wade&luffy 阅读(1099) 评论(0) 推荐(1) 编辑
摘要:闭包表的思路和物化路径差不多,都是空间换时间,Closure Table,一种更为彻底的全路径结构,分别记录路径上相关结点的全展开形式。能明晰任意两结点关系而无须多余查询,级联删除和结点移动也很方便。但是它的存储开销会大一些,除了表示结点的Meta信息,还需要一张专用的关系表。 其中 Ancesto 阅读全文
posted @ 2017-10-25 15:06 wade&luffy 阅读(2976) 评论(0) 推荐(0) 编辑
摘要:在创建节点时,将节点的完整路径进行记录。 按照Path Enumeration 进行存储后的结果如下: 此种方案借助了unix文件目录的思想,主要时以空间换时间。 缺点: 树的层级太深有可能会超过PATH字段的长度,所以其能支持的最大深度并非无限的。 PS:如果层级数量是确定的,可以再将所有的列都展 阅读全文
posted @ 2017-10-25 15:00 wade&luffy 阅读(840) 评论(0) 推荐(0) 编辑
摘要:在程序开发中,我们常遇到用树型结构来表示某些数据间的关系,如企业的组织架构、商品的分类、操作栏目等,目前的关系型数据库都是以二维表的形式记录存储数据,而树型结构的数据如需存入二维表就必须进行Schema设计。 Adjacency List(邻接列表模式) 简单的说是根据节点之间的继承关系,显现的描述 阅读全文
posted @ 2017-10-25 14:56 wade&luffy 阅读(716) 评论(0) 推荐(0) 编辑
摘要:引子 考虑一个有序表:14->23->34->43->50->59->66->72 从该有序表中搜索元素 < 23, 43, 59 > ,需要比较的次数分别为 < 2, 4, 6 >,总共比较的次数 为 2 + 4 + 6 = 12 次。有没有优化的算法吗? 链表是有序的,但不能使用二分查找。类似二 阅读全文
posted @ 2017-10-25 14:08 wade&luffy 阅读(501) 评论(1) 推荐(1) 编辑
摘要:一致性哈希可以有效解决分布式存储结构下动态增加和删除节点所带来的问题。 一致性hash算法提出了在动态变化的Cache环境中,判定哈希算法好坏的四个定义: 环形Hash空间 按照常用的hash算法来将对应的key哈希到一个具有2^32次方个桶的空间中,即0~(2^32)-1的数字空间中。现在我们可以 阅读全文
posted @ 2017-10-25 10:34 wade&luffy 阅读(489) 评论(0) 推荐(0) 编辑
摘要:B树 B-树就是B树,中间是横线不是减号。B树是一种多路平衡查找树。 B-树(Balance Tree),一个m阶的B树具有如下几个特征: 1.根结点至少有两个子女。 2.每个中间节点都包含k-1个元素和k个孩子,其中 m/2 <= k <= m 3.每一个叶子节点都包含k-1个元素,其中 m/2 阅读全文
posted @ 2017-10-24 13:50 wade&luffy 阅读(674) 评论(0) 推荐(0) 编辑
摘要:ps: Protocol Buffers简称PB PB 安装配置 下载 PB: 在 PB 官网,下载最新版(或者其他版本)PB,这里为了与 Java 项目中的 PB Maven 依赖版本一致,使用 PB 2.5.0 版本。 安装 PB: 解压:tar zxvf protobuf-2.5.0.tar. 阅读全文
posted @ 2016-07-12 16:23 wade&luffy 阅读(1135) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示