-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
added JumpListMap implemenation, described data structure in readme
- Loading branch information
Showing
2 changed files
with
1,503 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,19 @@ | ||
# jumplists | ||
proof of concept implementation of a Map via median-of-k jumplists | ||
A proof-of-concept implementation of a SortedMap via median-of-k jumplists. | ||
|
||
Jumplists are a sorted singly-linked list that uses additional jump-pointer in elements | ||
to speed up searching in the list. | ||
This implementation is a randomized data structure that chooses the jump targets randomly. | ||
|
||
The methods get, put and remove all have expected logarithmic time complexity, | ||
where the expectation is w.r.t. the random structure of the jumplist. | ||
Jumplists also offer methods to select keys by rank, which also run in expected logarithmic time. | ||
The next method of iterators over the entries in sorted order has worst-case constant time complexity. | ||
A jumplist can be created in linear time from a list of sorted entries. | ||
|
||
Jumplists use three parameters: | ||
* t1 and t2 control how the jump targets are chosen; t1 = t2 = 0 or t1 = t2 = 1 are advisable settings. | ||
The larger these parameters, the more balanced the jumplist. | ||
This speeds up searches, but makes updates (insertions and deletions) more costly. | ||
* w controls the maximal size of sublists for which no jump pointers are used; w = 100 seems advisable. | ||
The larger w, the less storage is used, but searches become slower. |
Oops, something went wrong.