数据结构
文章平均质量分 91
东东咚咚咚咚咚丶
饿了么后端工程师,一只不定期产粮的一线研发猿
展开
-
一致性哈希算法
在了解一致性哈希算法之前,最好先了解一下缓存中的一个应用场景,了解了这个应用场景之后,再来理解一致性哈希算法,就容易多了,也更能体现出一致性哈希算法的优点,那么,我们先来描述一下这个经典的分布式缓存的应用场景。场景描述假设,我们有三台缓存服务器,用于缓存图片,我们为这三台缓存服务器编号为0号、1号、2号,现在,有3万张图片需要缓存,我们希望这些图片被均匀的缓存到这3台服务器上,以便它们能够分摊缓存...原创 2018-06-12 19:13:29 · 232 阅读 · 0 评论 -
红黑树详解(一)
本文以Java TreeMap为例,从源代码层面,结合详细的图解,剥茧抽丝地讲解红黑树(Red-Black tree)的插入,删除以及由此产生的调整过程。总体介绍Java TreeMap实现了SortedMap接口,也就是说会按照key的大小顺序对Map中的元素进行排序,key大小的评判可以通过其本身的自然顺序(natural ordering),也可以通过构造时传入的比较器(Comparator...原创 2018-06-14 11:28:13 · 392 阅读 · 0 评论 -
红黑树详解(二)
上一篇文章史上最清晰的红黑树讲解(上)对Java TreeMap的插入以及插入之后的调整过程给出了详述。本文接着以Java TreeMap为例,从源码层面讲解红黑树的删除,以及删除之后的调整过程。如果还没有看过上一篇文章,请在阅读本文之前大致浏览一下前文,以方便理解。寻找节点后继对于一棵二叉查找树,给定节点t,其后继(树种比大于t的最小的那个元素)可以通过如下方式找到:t的右子树不空,则t的后继是...原创 2018-06-14 11:29:41 · 322 阅读 · 0 评论 -
红黑树 之 原理和算法详细介绍
概要目录1 红黑树的介绍2 红黑树的应用3 红黑树的时间复杂度和相关证明4 红黑树的基本操作(一) 左旋和右旋5 红黑树的基本操作(二) 添加6 红黑树的基本操作(三) 删除 作者:Sky Wang 于 2013-08-08 概述:R-B Tree,又称为“红黑树”。本文参考了《算法导论》中红黑树相关知识,加之自己的理解,...原创 2018-06-14 11:32:09 · 320 阅读 · 0 评论 -
跳表基础
最近小伙伴分享redis时,讲到redis 数据结构(Redis sorted set)中有跳表。这里记录下跳表。 储存数据时,数组容量有限且有序数组增加元素时效率比较低,所以存储数据时常选用链表。但是链表的查询效率O(n)。 有没有可以提高链表查找效率的方式呢?跳表就是这样一种结构。利用空间换时间的方式,提高查询效率。 跳跃表的结构是多层的,通过从最高维度的表进行检索再逐渐降低维度从而达到对任何...原创 2018-06-08 16:02:52 · 714 阅读 · 0 评论