ConcurrentSkipListSet的复杂性访问第一个和最后一个元素

时间:2015-02-19 15:10:45

标签: java time-complexity skip-lists

根据我的理解,ConcurrentSkipListSet的平均复杂度为O(log n),用于插入,搜索和删除元素以及O(n)的最坏情况。访问第一个和最后一个元素怎么样?它是否低于日志?我看到它保留了指向头部的指针。因此,我猜第一个元素是O(1)。

1 个答案:

答案 0 :(得分:2)

是的,你是正确的。 => O(log n)

然而,当访问最后一个时,你不知道它是哪一个,因为它毕竟是一个链表。现在因为它是一个跳过列表,你得到{{1}}而不是在线性时间内处理所有元素。在这里你可以找到一个零下一个指针,但由于你不知道要检查哪一个指针仍然在{{1}}。

实际测量时间与渐近近似值之间存在差异!

以下是对它的可能描述: Find last

我希望这会有所帮助。