Rodion Efremov created COLLECTIONS-797:
------------------------------------------
Summary: An indexed, doubly-linked list data structure running
some operations in O(sqrt(n)) time instead of O(n)
Key: COLLECTIONS-797
URL: https://issues.apache.org/jira/browse/COLLECTIONS-797
Project: Commons Collections
Issue Type: Improvement
Components: Collection
Reporter: Rodion Efremov
The data structure in question lives in
[GitHub|https://github.com/coderodde/LinkedList].
The idea is that we maintain sqrt(N/2) so called "fingers" along the actual
list. Each finger contains a reference to a list node and an index of that
node. Now, when we need to access a node via an index, we don't have to scan
through the entire linked list, but, instead, only consult all the finger,
choose the closest finger, and iterate from the respective node towards the
target node.
If the fingers are distributely evenly, also traversal from the node pointed by
a finger to the target node will require O(sqrt(N)) time.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)