Tuesday, March 20, 2012

A skip list is a data structure for storing a sorted list of items using a hierarchy of linked lists that connect increasingly sparse subsequences of the items. These auxiliary lists allow item lookup with efficiency comparable to balanced binary search trees (that is, with number of probes proportional to log n instead of n).

Operation / Time Complexity
Insertion / O(log N)
Removal / O(log N)
Check if contains / O(log N)
Enumerate in order / O(N)

http://en.wikipedia.org/wiki/Skip_list
http://igoro.com/archive/skip-lists-are-fascinating/
http://www.dreamincode.net/forums/blog/114/entry-2727-introduction-to-a-skiplist-data-structure-in-java/