# The Hierarchy of Hereditary Sorting Operators

Michal Opler, 4 Dec 2023

We consider the following general model of a sorting procedure: we fix a hereditary permutation class \(C\), which corresponds to the operations that the procedure is allowed to perform in a single step. The input of sorting is a permutation \(\pi\) of the set \([n]={1,2,\dotsc,n}\), i.e., a sequence where each element of \([n]\) appears once. In every step, the sorting procedure picks a permutation \(\sigma\) of length \(n\) from \(C\), and rearranges the current permutation of numbers by composing it with \(\sigma\). The goal is to transform the input \(\pi\) into the sorted sequence \(1,2,\dotsc,n\) in as few steps as possible.

This model of sorting captures not only classical sorting algorithms, like insertion sort or bubble sort, but also sorting by series of devices, like stacks or parallel queues, as well as sorting by block operations commonly considered, e.g., in the context of genome rearrangement.

Our goal is to describe the possible asymptotic behavior of the worst-case number of steps needed when sorting with a hereditary permutation class. As the main result, we show that any hereditary permutation class \(C\) falls into one of five distinct categories. Disregarding trivial extreme cases, a worst-case sorting time of a hereditary class is either \(\Theta(n^2)\), or a function between \(O(n)\) and \(\Omega(\sqrt{n})\), or \(O(\log^2 n)\), and for each of these cases we provide a structural characterization of the corresponding hereditary classes.