我读到跳跃列表的插入时间复杂度是 (log n) 的顺序,概率非常高,但在最坏的情况下是 O(n)。但是在阅读 https://redis.io/commands/zadd 处的 redis zadd 文档时它告诉我们:对于添加的每个项目,O(log(N)),其中 N 是排序集中元素的数量。
如果redis使用跳表,那么zadd在最坏情况下应该是O(n),不是吗?
ps: 抱歉,我之前发过同样的问题,但没有得到任何回复。 删除并重新创建。
最佳答案
Redis 的 skiplist
实现是对 William Pugh 论文的修改。因此,在最坏的情况下,时间复杂度为 O(n)
。 ZADD
的AVERAGE 时间复杂度为O(log(n))
。
关于redis - redis中zadd的时间复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44530392/