- 如果不满足上述条件中的任意一个,都会使用跳表**(这里的跳表是结合字典的)**
-
之所以这样设置是因为考虑到如果直接使用跳跃表,如果需要查找成员的分值时只能通过遍历成员来进行查找,而这样的效率是O(logN)
-
而字典虽然建立映射后可以O(1)的查找到分值,但是哈希表只能通过key值进行查找,并不支持范围查询。
-
所以将两者进行结合,使用字典建立起元素与分值的映射,使用字典来进行成员分数的查找,而使用跳跃表来进行范围型操作,这样就很好的解决了这个问题。
-
毕竟如果是单个查询, 使用哈希是最好的处理办法, 如果是范围查询使用跳表是最好的办法
-
跳跃表(skiplist)是一种有序数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的
-
跳跃表支持平均O(logN)、最坏O(N)复杂度的节点查找,还可以通过顺序性操作来批量处理节点
-
在大部分情况下,跳跃表的效率可以和平衡树相媲美,并且因为跳跃表的实现比平衡树要来得更为简单,所以有不少程序都使用跳跃表来代替平衡树
-
Redis使用跳跃表作为有序集合键的底层实现之一,如果一个有序集合包含的元素数量比较多,又或者有序集合中元素的成员(m