Maintains a forest of Leonardo heaps, whose sizes follow the Leonardo number series 1, 1, 3, 5, 9, 15, 25, …, adding each element to extend the rightmost heap, then extracts elements by dismantling the forest in reverse order.
Adaptive, when the input is already sorted no swaps are performed and the algorithm completes in O(n); unlike standard Heapsort it degrades gracefully rather than always running in full O(n log n) regardless of input order.