Sorting strings and constructing digital search trees in parallel
Sorting strings and constructing digital search trees in parallel
复制标题
并行排序字符串和构建数字搜索树
DOI:
--
复制
发表时间:
1994
期刊:
影响因子:
--
通讯作者:
U. Vishkin
中科院分区:
文献类型:
--
作者:
J. JáJá;K. Ryu;U. Vishkin
We describe two simple optimal-work parallel algorithms for sorting a list /spl Lscr/=(X/sub 1/,X/sub 2/,...,X/sub m/) of m strings over an arbitrary alphabet /spl Sigma/, where /spl Sigmasub i=1sup mspl verbar/X/sub ispl verbar/=n. The first algorithm is a deterministic algorithm that runs in O((log/sup 2/ m)/(log log m)) time and the second is a randomized algorithm that runs in O(log m) time. Both algorithms use O(m log(m)+n) operations. Compared to the best known parallel algorithms for sorting strings, the algorithms offer the following improvements: the total number of operations used by the algorithms is optimal while all previous parallel algorithms use a non-optimal number of operations; we make no assumption about the alphabet while the previous algorithms assume that the alphabet is restricted to /spl lcub/1,2,..., n/sup O(1/)/spl rcub/; the computation model assumed by the algorithms is the Common CRCW PRAM unlike the known algorithms that assume the Arbitrary CRCW PRAM; and the presented algorithms use O(m log m+n) space, while previous parallel algorithms use O(n/sup 1+/spl epsiv) space, where /spl epsiv/ is a positive constant. We also present optimal-work parallel algorithms to construct a digital search tree for a given set of strings and to search for a string in a sorted list of strings. We use the parallel sorting algorithms to solve the problem of determining a minimal starting point of a circular string with respect to lexicographic ordering.<<ETX>>