Issue No. 09 - September (1989 vol. 15)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/32.31365
<p>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.</p>
digital search algorithm; double-array structure; internal array structure; matrix form; list form; arc; digital search tree; DS-tree; worst-case time complexity; key; retrieval; insertion; deletion; nodes; input symbols; constant; computational complexity; data structures; search problems; trees (mathematics)
J. Aoe, "An Efficient Digital Search Algorithm by Using a Double-Array Structure," in IEEE Transactions on Software Engineering, vol. 15, no. , pp. 1066-1077, 1989.