We introduce the lazy search tree data structure. The lazy search tree is a comparison-based data structure on the pointer machine that supports order-based operations such as rank, select, membership, predecessor, successor, minimum, and maximum while providing dynamic operations insert, delete, change-key, split, and merge. We analyze the performance of our data structure based on a partition of current elements into a set of gaps $\{\Delta_i\}$ based on rank. A query falls into a particular gap and splits the gap into two new gaps at a rank $r$ associated with the query operation. If we define $B = \sum_i |\Delta_i| \log_2(n/|\Delta_i|)$, our performance over a sequence of $n$ insertions and $q$ distinct queries is $O(B + \min(n \log \log n, n \log q))$. We show $B$ is a lower bound. Effectively, we reduce the insertion time of binary search trees from $\Theta(\log n)$ to $O(\min(\log(n/|\Delta_i|) + \log \log |\Delta_i|, \; \log q))$, where $\Delta_i$ is the gap in which the inserted element falls. Over a sequence of $n$ insertions and $q$ queries, a time bound of $O(n \log q + q \log n)$ holds; better bounds are possible when queries are non-uniformly distributed. As an extreme case of non-uniformity, if all queries are for the minimum element, the lazy search tree performs as a priority queue with $O(\log \log n)$ time insert and decrease-key operations. The same data structure supports queries for any rank, interpolating between binary search trees and efficient priority queues. Lazy search trees can be implemented to operate mostly on arrays, requiring only $O(\min(q, n))$ pointers. Via direct reduction, our data structure also supports the efficient access theorems of the splay tree, providing a powerful data structure for non-uniform element access, both when the number of accesses is small and large.


翻译:我们引入了懒惰的搜索树数据结构。 懒惰的搜索树是一个基于比较的数据结构, 用于支持基于命令的操作, 如级别、 选择、 成员资格、 前任、 后续、 最小和最大, 同时提供动态操作插入、 删除、 更改键、 拆分和合并。 我们分析基于当前元素分割的数据结构的性能, 以级别为基础, 将当前元素的性能分割成一组空白 ${D> 。 查询会进入一个特定的空白, 将差距分割成两个与查询操作相关的级别( 美元) 。 如果我们定义 $B = sum_ i _ Delta_ 序列\\\ log_ \ log_ i\ $, 我们的数据结构中的 $+ min( n\ log n, nlog q) 优先度, 也可以在时间上插入 $( lix) 和 时间支持 。 任何B$( i) lideal- lade) lax a time.

0
下载
关闭预览

相关内容

【Google】梯度下降,48页ppt
专知会员服务
80+阅读 · 2020年12月5日
【DeepMind】强化学习教程,83页ppt
专知会员服务
152+阅读 · 2020年8月7日
因果图,Causal Graphs,52页ppt
专知会员服务
246+阅读 · 2020年4月19日
机器学习入门的经验与建议
专知会员服务
92+阅读 · 2019年10月10日
Transferring Knowledge across Learning Processes
CreateAMind
27+阅读 · 2019年5月18日
Dataset Search | 数据集搜索专用引擎
机器学习算法与Python学习
9+阅读 · 2018年9月7日
已删除
将门创投
3+阅读 · 2018年3月13日
【 关关的刷题日记53】 Leetcode 100. Same Tree
专知
10+阅读 · 2017年12月1日
【推荐】决策树/随机森林深入解析
机器学习研究会
5+阅读 · 2017年9月21日
Arxiv
0+阅读 · 2020年12月2日
Searching, Sorting, and Cake Cutting in Rounds
Arxiv
0+阅读 · 2020年12月1日
Arxiv
0+阅读 · 2020年11月30日
Arxiv
0+阅读 · 2020年11月30日
Arxiv
0+阅读 · 2020年11月30日
VIP会员
相关资讯
Transferring Knowledge across Learning Processes
CreateAMind
27+阅读 · 2019年5月18日
Dataset Search | 数据集搜索专用引擎
机器学习算法与Python学习
9+阅读 · 2018年9月7日
已删除
将门创投
3+阅读 · 2018年3月13日
【 关关的刷题日记53】 Leetcode 100. Same Tree
专知
10+阅读 · 2017年12月1日
【推荐】决策树/随机森林深入解析
机器学习研究会
5+阅读 · 2017年9月21日
相关论文
Top
微信扫码咨询专知VIP会员