What Cannot be Skipped About the Skiplist
arxiv.org
arxiv.org
Ref: http://www.sciencedirect.com/science/article/pii/03043975940...
The are a tree-based version of skiplists and thus more suited to functional programming / immutable datastructures.
I'd also like to see better investigations into Treaps balanced not for fairness but for average access time, so that more frequently used values are faster to look up than uncommon values.
For a project I made a version that uses the memory location of the entries to construct the (random) rank on the fly.
So it’s a binary tree structure that requires the same memory as a linked list (two pointers) only!
https://github.com/open62541/open62541/blob/master/deps/zipt...
https://stackoverflow.com/questions/61944198/what-is-a-zip-t...
They have? I've always viewed them as a curiosity. They're a ton easier to understand than balanced trees and have the same performance behavior, which sounds great. But the allocation mess[1] makes them lose to RB or AVL trees in, basically every system I can think of. Is any major software using skiplists as a standard ordered container or map?
[1] You either need to pay for Log2(N) pointers per item, or allocate them from a heap with variable header sizes. Both of those choices are really pessimal when compared with fixed-size metadata. Skiplists pretty much can't be intrusive, for example.
Java for concurrent navigable maps.
https://docs.oracle.com/en/java/javase/21/docs/api/java.base...
> All Known Implementing Classes: ConcurrentSkipListMap
Balancing binary search trees suffer from lock contention more than skip lists.
Hm... I guess the argument would be that the various list insertions can be independently synchronized? Certainly lookup is going to be a r/w lock or whatever and basically a wash. I vaguely buy that but would want to see numbers.
But that said, the hash made of the heap due to the variable size nodes and lack of intrusivity is going to have exactly the opposite effect for any high performance implementation. Maybe Java doesn't play in that sandbox, I guess.
There is a locality penalty for lookups, although I don't think this is core to skip-lists, just an impracticality of the Java language and how you can use its standard libraries. The variable size of the nodes is not a problem for the Java heap, due to how compacting garbage collectors work.
https://github.com/openjdk-mirror/jdk7u-jdk/blob/master/src/...
but this is the paper you want if you need to look up what variants exist of, say, the interval skip list, and how they compare. as it happens, that's exactly what i needed today
gold
Ref: https://blog.arxiv.org/2023/12/21/accessibility-update-arxiv...
> [...] arXiv is now generating an HTML formatted version of all papers submitted in TeX/LaTeX [...]
This paper has been submitted as a PDF blob rather than buildable TeX source, it seems. (Otherwise there’d also be a “TeX Source” link on the left.)