Efficient Algorithms for Sorting in Trees
Sorting is a foundational problem in computer science that is typically employed on sequences or total orders. More recently, a more general form of sorting on partially ordered sets (or posets), where some pairs of elements are incomparable, has been studied. General poset sorting algorithms have a lower-bound query complexity of Ω(wn + n log n), where w is the width of the poset. We consider the problem of sorting in trees, a particular case of partial orders, and parametrize the complexity with respect to d, the maximum degree of an element in the tree, as d is usually much smaller than w in trees. For example, in complete binary trees, d = Θ(1), w = Θ(n). We present a randomized algorithm for sorting a tree poset in worst-case expected O(dnlog n) query and time complexity. This improves the previous upper bound of O(dn log^2 n). Our algorithm is the first to be optimal for bounded-degree trees. We also provide a new lower bound of Ω(dn + n log n) for the worst-case query complexity of sorting a tree poset. Finally, we present the first deterministic algorithm for sorting tree posets that has lower total complexity than existing algorithms for sorting general partial orders.
READ FULL TEXT