7得票1回答
没有随机化的跳表?

我阅读了一些关于跳表的内容,并正在实现它。但是有一件事情到目前为止我还没有完全理解,那就是为什么跳表是随机的?在我找到的所有资料中,跳表都使用随机数来决定插入项目的级别。难道不能计算出最优解吗?或者不能说“每四个项目”应该插入到上一级吗?

20得票7回答
Java是否有跳表实现?

我在Java集合框架中找到了一个名为ConcurrentSkipListSet的数据结构,它是由跳表支持的。但是Java中是否存在跳表?在我的应用场景下,集合并不能满足我的需求。我需要一个支持重复项且可以进行索引的列表。

7得票2回答
ConcurrentSkipList是什么?它不是ConcurrentSkipListSet吗?

我需要一个非常快速(插入、删除、查询)高度并发的列表,可以使用比较器/可比较器进行排序。 如果ConcurrentSkipListSet是列表而不是集合,则现有的结构将非常理想。我需要将多个相等的项插入到数据结构中。 如果找不到更好的结构,我目前正在考虑使用LinkedDeque,但在高争...

25得票2回答
跳表,它们真的像Pugh论文所声称的那样表现良好吗?

我正在尝试实现一个跳表,使其在最小的附加内存开销下与BST一样好用。目前,即使不考虑任何内存限制,我的SkipList实现的性能也远远落后于一个非常朴素的平衡BST实现 -可以说是手工制作的BTS :)- 作为参考,我使用了William Pugh的原始论文PUG89和来自Sedgewick的...

17得票1回答
什么是Zip Tree,它是如何工作的?

我听说过一种新的平衡二叉搜索树数据结构,叫做Zip Tree。什么是 Zip Tree?它是如何工作的?

21得票2回答
如何实现无锁跳表

我需要实现一个无锁跳表。我试图查找论文,但不幸的是,我发现的都是无锁单链表(有很多种)。然而如何实现无锁跳表呢?

8得票2回答
优先队列 - 跳表 vs 斐波那契堆

我有兴趣实现一个优先队列,以实现高效的Astar算法,并保持相对简单(我的意思是优先队列要简单)。由于跳表提供了一个简单的O(1)提取最小操作和一个O(Log N)插入操作,所以它似乎可以与更难实现的Fibonacci堆竞争,后者具有O(log N)提取最小和O(1)插入。我认为跳表适用于稀疏...

12得票3回答
我可以使用identityHashCode来生成一个比较两个对象是否相同的compareTo吗?

我希望实现一个简单的比较器,比较两个对象,其唯一要求是: 它是一个有效的比较器(即定义了所有对象的线性顺序) .compare仅在对象相同时返回0。 Comparator.comparing(System::identityHashCode) 能否工作?还有其他方法吗? 动机: 我想构建一...

7得票1回答
为什么QMap使用跳表而不是红黑树?

我想知道为什么QMap选择了跳表数据结构而不是红黑树?关于并发数据结构和跳表相对于红黑树的优缺点,有一个非常有趣的SO线程。这确实是一次非常有趣的对话,包含了有用的链接,但是QMap不是线程安全的,它没有默认的互斥锁来同步访问。需要使用包装器或子类化才能实现。 对我来说,编写“手工制作”的跳...

18得票3回答
为什么在数据库中不喜欢使用跳表而更喜欢使用B+树?

我在阅读有关跳表和MemSQL的文章时,想知道为什么跳表在数据库中没有被广泛使用?使用跳表是否存在重大缺点?