Efficient Algorithms for Sorting in Trees

05/31/2022
by   Jishnu Roychoudhury, et al.
0

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

Please sign up or login with your details

Forgot password? Click here to reset