数据结构与算法
文章平均质量分 87
z_ryan
这个作者很懒,什么都没留下…
展开
-
一致性hash详解
需求 我们都知道,任何一种算法的的出现都源于需求。人们需要用它来更好的解决问题。那么,一致性hash算法的出现是源于什么需求呢?例如:在使用n台缓存服务器时,一种常用的负载均衡方式是,对资源o的请求使用hash(o)=o mod n 来映射到某一台缓存服务器。当增加一台服务器时,其hash函数相应就得变为:hash(o)=o mod (n + 1);反之,当 减少一台缓存服务器时,其hash原创 2018-01-25 19:35:53 · 1418 阅读 · 0 评论 -
数据结构之哈希表(HASH)
前言 当我们在编程过程中,往往需要对线性表进行查找操作。在顺序表中查找时,需要从表头开始,依次遍历比较a[i]与key的值是否相等,直到相等才返回索引i;在有序表中查找时,我们经常使用的是二分查找,通过比较key与a[i]的大小来折半查找,直到相等时才返回索引i。最终通过索引找到我们要找的元素。 但是,这两种方法的效率都依赖于查找中比较的次数。我们有一种想法,能不能不经过比较,而是原创 2018-01-18 19:15:38 · 40202 阅读 · 2 评论 -
红黑树
前言 提到红黑树,我们首先得知道二叉查找树(Binary Search Tree),也称二叉搜索树,有序二叉树,排序二叉树,是指一颗空树,或者具有以下性质的二叉树: (1)若任意节点的左子树不空,则左子树上所有节点的值均小于它的根节点的值; (2)若任意节点的右子树不空,则右子树上的所有节点的值均大于它的根节点的值; (3)任意节点的左、右子树也分别为二叉查找树;原创 2018-01-19 19:33:06 · 1199 阅读 · 0 评论 -
简单剖析B树(B-Tree)与B+树
注意:首先需要说明的一点是:B-树就是B树,没有所谓的B减树引言 我们都知道二叉查找树的查找的时间复杂度是O(log N),其查找效率已经足够高了,那为什么还有B树和B+树的出现呢?难道它两的时间复杂度比二叉查找树还小吗? 答案当然不是,B树和B+树的出现是因为另外一个问题,那就是磁盘IO;众所周知,IO操作的效率很低,那么,当在大量数据存储中,查询时我们不能一下子将所有数据加载到...原创 2018-03-25 11:30:09 · 71028 阅读 · 27 评论 -
详解二叉树的非递归遍历
本文转载自:http://blog.csdn.net/zhangxiangdavaid/article/details/37115355前言 对于二叉树的递归遍历比较简单,所以本文主要讨论的是非递归版。其中,中序遍历的非递归写法最简单,后序遍历最难。 节点的定义://Binary Tree Nodetypedef struct node{ int data; ...转载 2018-06-29 11:18:20 · 100639 阅读 · 21 评论