【发布时间】:2012-08-27 05:11:02
【问题描述】:
我对从跳过列表中插入或删除元素所花费的时间有点困惑。
假设有一个高度为 H 的跳过列表,每个级别包含 n/2^i 个条目。
n = 键值对的总数
i = 跳过列表的级别 i
现在,根据理论,插入操作将执行以下操作
1. 查找密钥
2.插入此键
3.在基础级别以上的级别随机创建此条目。
让我们假设 Skip 列表是基于链表的。
第 1 步:应该采用 O(n)。
第 2 步:应该是 O(1)。
第 3 步:应该是 O(log n) 时间。我仍然对这个逻辑感到困惑,这将是下面问题的一部分
问题
基于以上事实,插入时间不应该是O(n) + O(1) + O(log n)吗? 忽略低阶项,它应该是 O(n) + O(log n)?
第 3 步再次应该花费 O(n) 时间来搜索要插入的密钥
书籍说插入跳过列表需要 O(log n) 时间。我一定遗漏了一些重要信息,请您帮助我对这个概念有一个很好的理解。
【问题讨论】:
标签: algorithm insertion skip-lists