An efficient digital search algorithm by using a double-array structure
- 1 January 1989
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Software Engineering
- Vol. 15 (9) , 1066-1077
- https://doi.org/10.1109/32.31365
Abstract
An efficient digital search algorithm that is based on an internal array structure called a double array, which combines the fast access of a matrix form with the compactness of a list form, is presented. Each arc of a digital search tree, called a DS-tree, can be computed from the double array in 0(1) time; that is to say, the worst-case time complexity for retrieving a key becomes 0(k) for the length k of that key. The double array is modified to make the size compact while maintaining fast access, and algorithms for retrieval, insertion, and deletion are presented. If the size of the double array is n+cm, where n is the number of nodes of the DS-tree, m is the number of input symbols, and c is a constant particular to each double array, then it is theoretically proved that the worst-case times of deletion and insertion are proportional to cm and cm/sup 2/, respectively, and are independent of n. Experimental results of building the double array incrementally for various sets of keys show that c has an extremely small value, ranging from 0.17 to 1.13.Keywords
This publication has 17 references indexed in Scilit:
- An efficient digital search algorithm by using a double-array structurePublished by Institute of Electrical and Electronics Engineers (IEEE) ,2003
- Two Access Methods Using Compact Binary TreesIEEE Transactions on Software Engineering, 1987
- Collections of Functions for Perfect HashingSIAM Journal on Computing, 1986
- Practical Perfect HashingThe Computer Journal, 1985
- A Practical Method for Reducing Weak Precedence ParsersIEEE Transactions on Software Engineering, 1983
- Reciprocal hashingCommunications of the ACM, 1981
- Minimal perfect hash functions made simpleCommunications of the ACM, 1980
- Storing a sparse tableCommunications of the ACM, 1979
- Median split treesCommunications of the ACM, 1978
- Perfect hashing functionsCommunications of the ACM, 1977