The art of computer programming, volume 3: (2nd ed.) sorting and searching
The art of computer programming, volume 3: (2nd ed.) sorting and searching
Efficient generation of the binary reflected gray code and its applications
Communications of the ACM
Algorithms + Data Structures = Programs
Algorithms + Data Structures = Programs
Two applications of a probabilistic search technique: Sorting X+Y and building balanced search trees
STOC '75 Proceedings of seventh annual ACM symposium on Theory of computing
The state of the Art of Computer Programming
The state of the Art of Computer Programming
Self-adjusting binary search trees
Journal of the ACM (JACM)
Adding range restriction capability to dynamic data structures
Journal of the ACM (JACM)
Linear time algorithms for visibility and shortest path problems inside simple polygons
SCG '86 Proceedings of the second annual symposium on Computational geometry
Finding the visibility graph of a simple polygon in time proportional to its size
SCG '87 Proceedings of the third annual symposium on Computational geometry
Hidden surface removal for rectangles
SCG '88 Proceedings of the fourth annual symposium on Computational geometry
Fully persistent lists with catenation
SODA '91 Proceedings of the second annual ACM-SIAM symposium on Discrete algorithms
A survey of adaptive sorting algorithms
ACM Computing Surveys (CSUR)
Biased finger trees and three-dimensional layers of maxima: (preliminary version)
SCG '94 Proceedings of the tenth annual symposium on Computational geometry
Fully persistent lists with catenation
Journal of the ACM (JACM)
Purely functional representations of catenable sorted lists
STOC '96 Proceedings of the twenty-eighth annual ACM symposium on Theory of computing
H-Walk: hierarchical distance computation for moving convex bodies
SCG '99 Proceedings of the fifteenth annual symposium on Computational geometry
Worst-case efficient priority queues
Proceedings of the seventh annual ACM-SIAM symposium on Discrete algorithms
Finger search trees with constant insertion time
Proceedings of the ninth annual ACM-SIAM symposium on Discrete algorithms
ACM Computing Surveys (CSUR)
A unifying look at data structures
Communications of the ACM
Alternatives to splay trees with O(log n) worst-case access times
SODA '01 Proceedings of the twelfth annual ACM-SIAM symposium on Discrete algorithms
Optimal finger search trees in the pointer machine
STOC '02 Proceedings of the thiry-fourth annual ACM symposium on Theory of computing
Space-efficient finger search on degree-balanced search trees
SODA '03 Proceedings of the fourteenth annual ACM-SIAM symposium on Discrete algorithms
Priority Queues, Pairing, and Adaptive Sorting
ICALP '02 Proceedings of the 29th International Colloquium on Automata, Languages and Programming
ISAAC '02 Proceedings of the 13th International Symposium on Algorithms and Computation
Adaptive Sorting and the Information Theoretic Lower Bound
STACS '03 Proceedings of the 20th Annual Symposium on Theoretical Aspects of Computer Science
COCOON '98 Proceedings of the 4th Annual International Conference on Computing and Combinatorics
Localized search in sorted lists
STOC '81 Proceedings of the thirteenth annual ACM symposium on Theory of computing
A representation for linear lists with movable fingers
STOC '78 Proceedings of the tenth annual ACM symposium on Theory of computing
Toward a Universal Mapping Algorithm for Accessing Trees in Parallel Memory Systems
IPPS '98 Proceedings of the 12th. International Parallel Processing Symposium on International Parallel Processing Symposium
Optimal finger search trees in the pointer machine
Journal of Computer and System Sciences - STOC 2002
New dynamic balanced search trees with worst-case constant update time
Journal of Automata, Languages and Combinatorics - Special issue: Selected papers of the 13th Australasian workshop on combinatorial algorithms
Shortest paths in simple polygons with polygon-meet constraints
Information Processing Letters
Finger trees: a simple general-purpose data structure
Journal of Functional Programming
Improved output-sensitive snap rounding
Proceedings of the twenty-second annual symposium on Computational geometry
Improving the performance of multidimensional search using fingers
Journal of Experimental Algorithmics (JEA)
Multidimensional heaps and complementary range searching
Information Processing Letters
A unified access bound on comparison-based dynamic dictionaries
Theoretical Computer Science
Query-point visibility constrained shortest paths in simple polygons
Theoretical Computer Science
An output sensitive algorithm for computing visibility graphs
SFCS '87 Proceedings of the 28th Annual Symposium on Foundations of Computer Science
Sorting on architecturally diverse computer systems
Proceedings of the Third International Workshop on High-Performance Reconfigurable Computing Technology and Applications
Purely functional 1-2 brother trees
Journal of Functional Programming
A compact data structure for representing a dynamic multiset
Information Processing Letters
Adaptive algorithms for planar convex hull problems
FAW'10 Proceedings of the 4th international conference on Frontiers in algorithmics
Cache-aware and cache-oblivious adaptive sorting
ICALP'05 Proceedings of the 32nd international conference on Automata, Languages and Programming
Tradeoffs between branch mispredictions and comparisons for sorting algorithms
WADS'05 Proceedings of the 9th international conference on Algorithms and Data Structures
An empirical study for inversions-sensitive sorting algorithms
WEA'05 Proceedings of the 4th international conference on Experimental and Efficient Algorithms
Strictly-Regular number system and data structures
SWAT'10 Proceedings of the 12th Scandinavian conference on Algorithm Theory
Two constant-factor-optimal realizations of adaptive heapsort
IWOCA'11 Proceedings of the 22nd international conference on Combinatorial Algorithms
Fat heaps without regular counters
WALCOM'12 Proceedings of the 6th international conference on Algorithms and computation
Hi-index | 0.02 |
We present a new data structure for maintaining a set of records in a linear list according to their key values. This data structure has the property that we can keep a number of fingers at points of interest in the key space (e.g., the beginning or the end of the list), so that access and modification in the neighborhood of a finger is very efficient. In the Section 2 we discuss the general structure of our B-tree. Since we propose to search the tree from a leaf upwards, additional links need to be introduced. In Section 3 we show how to obtain our result for the case of one finger. A key idea is the construction of a number representation behaving as described above, which we can use to model the propagation of modifications in the B-tree along the finger path. In Section 4 we generalize the structure so that several fingers in the key space can be maintained, with the advantage that access is cheap in the neighborhood of each finger. Finally in Section 5 we present some implementation notes and applications, mostly to sorting.