A class of orders with linear? time sorting algorithm (1809.00954v5)
Abstract: In this article, we give a precise mathematical meaning to linear? time' that matches experimental behaviour of the algorithm. The sorting algorithm is not our own, it is a variant of radix sort with counting sort as a subroutine. The true result of this article is an efficient universality result for lexicographic order, or more generally for some linear extensions of the partial order
Next': if current items are equal, compare next items'. We define new classes of orders: (Finite width) Tree Structured Orders. We show that an instance of a finite width tree structured order can be converted in linear time and space to an instance of lexicographic order. The constants implied by the
nextification' algorithm are small (around 3 for real world orders). The class of finite width tree structured orders contains finite orders ({0, 1}, int32, int64, ..., float, double, ...), and orders constructed from them on a tree structure. In particular, unbounded integers, strings with arbitrary collation, and all orders used for sorting SQL queries are finite width tree structured orders.