该数据结构常常用于缓存查询数据。
数据结构如下:
最下面那一层所有的元素都会串起来,然后每隔几个元素挑出一个代表,再将这几个代表使用另一级指针串接起来。最终形成类似金字塔的结构。
查询的过程很简单,从顶层开始,往后查询遇到节点的next()比待查的大或者到NIL了,节点不变下移一层继续向后查询,如此反复,直到到了底层还没查到。在查询、添加、删除的时间复杂度上做到O(logN)
radis 的zset 排序 以及 lucence 都用到这种数据结构。
该数据结构常常用于缓存查询数据。
数据结构如下:
最下面那一层所有的元素都会串起来,然后每隔几个元素挑出一个代表,再将这几个代表使用另一级指针串接起来。最终形成类似金字塔的结构。
查询的过程很简单,从顶层开始,往后查询遇到节点的next()比待查的大或者到NIL了,节点不变下移一层继续向后查询,如此反复,直到到了底层还没查到。在查询、添加、删除的时间复杂度上做到O(logN)
radis 的zset 排序 以及 lucence 都用到这种数据结构。