数据结构
initiallysunny
欢迎关注公众号:Golang小白一起学
展开
-
【数据结构】跳表(skiplist)的原理及Golang实现
跳表(skiplist)是在有序链表的基础上进行了扩展,解决了有序链表结构查找特定值困难的问题,实现插入、删除、查找的复杂度均为O(logN),他是一种可以代替平衡树的数据结构。LevelDB的核心数据结构是用跳表实现的,redis的sortedset数据结构也是有跳表实现的。(参考维基百科:https://en.wikipedia.org/wiki/Skip_list)其结构如下图所示:一、查找在如下链表中查找x从最上层的链(S3)的开头开始,假设当前位置为p,它向右指向的..原创 2020-07-07 17:20:25 · 561 阅读 · 1 评论 -
布鲁姆过滤器
布隆过滤器是一种数据结构,快速和节省内存,能用于判定一个元素是否存在于一个集合中。这种效率的代价是Bloom filter是一种概率数据结构,元素不是绝对的在组里或可能在组里。Bloom filter的基本数据结构是一个位向量。图1:布鲁姆过滤器散列图如图1:布鲁姆过滤器,由一个长度为m(=18)的数组(初始值都为0)和k(=3)个hash 函数组成,图中的元素x,y,z,判断为“可能”存在于集合...转载 2018-05-31 17:23:55 · 1943 阅读 · 0 评论