The Community for Technology Leaders
2011 IEEE 52nd Annual Symposium on Foundations of Computer Science (2011)
Palm Springs, California USA
Oct. 22, 2011 to Oct. 25, 2011
ISSN: 0272-5428
ISBN: 978-0-7695-4571-4
pp: 738-747
We study the generalized sorting problem where we are given a set of n elements to be sorted but only a subset of all possible pair wise element comparisons is allowed. The goal is to determine the sorted order using the smallest possible number of allowed comparisons. The generalized sorting problem may be equivalently viewed as follows. Given an undirected graph G(V, E) where V is the set of elements to be sorted and E defines the set of allowed comparisons, adaptively find the smallest subset E¡ä \subseteq E of edges to probe such that the directed graph induced by E¡ä contains a Hamiltonian path. When G is a complete graph, we get the standard sorting problem, and it is well-known that Theta(n log n) comparisons are necessary and sufficient. An extensively studied special case of the generalized sorting problem is the nuts and bolts problem where the allowed comparison graph is a complete bipartite graph between two equal-size sets. It is known that for this special case also, there is a deterministic algorithm that sorts using Theta(n log n) comparisons. However, when the allowed comparison graph is arbitrary, to our knowledge, no bound better than the trivial O(n^2) bound is known. Our main result is a randomized algorithm that sorts any allowed comparison graph using O(n^{3/2}) comparisons with high probability (provided the input is sortable). We also study the sorting problem in randomly generated allowed comparison graphs, and show that when the edge probability is p, O(min{ n/p^2, n^{3/2}\sqrt{p}) comparisons suffice on average to sort.
algorithm, comparison-sort, sorting

S. Khanna, S. Kannan and Z. Huang, "Algorithms for the Generalized Sorting Problem," 2011 IEEE 52nd Annual Symposium on Foundations of Computer Science(FOCS), Palm Springs, California USA, 2011, pp. 738-747.
193 ms
(Ver 3.3 (11022016))