redis - redis中zadd的时间复杂度

标签 redis time-complexity sortedset

我读到跳跃列表的插入时间复杂度是 (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)ZADDAVERAGE 时间复杂度为O(log(n))

关于redis - redis中zadd的时间复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44530392/

相关文章:

雷迪斯 : How can I sort my hash by keys?

algorithm - 生成括号的递归实现的时间复杂度分析

python - 我如何证明和分析代码的运行时间,是 O(n) 吗?

Java SortedSet + Comparator,与equals()一致性问题

python-3.x - asyncio 是否已从 redis-py 中删除?

json - 如何使用 Spring Boot 2 CacheManager 在 Redis 中存储非类型化 JSON

redis - 无法在 redis-cli 中正确输入

javascript - array.prototype.includes 与 set.prototype.has 的时间复杂度

java - 在排序树集中存储对象并更新它

java - 如何使用redis有序集实现比赛排行榜