Back to Search Start Over

Multiway Powersort

Authors :
Gelling, William Cawley
Nebel, Markus E.
Smith, Benjamin
Wild, Sebastian
Source :
ALENEX 2023
Publication Year :
2022

Abstract

We present a stable mergesort variant, Multiway Powersort, that exploits existing runs and finds nearly-optimal merging orders for k-way merges with negligible overhead. This builds on Powersort (Munro & Wild, ESA2018), which has recently replaced Timsort's suboptimal merge policy in the CPython reference implementation of Python, as well as in PyPy and further libraries. Multiway Powersort reduces the number of memory transfers, which increasingly determine the cost of internal sorting (as observed with Multiway Quicksort (Kushagra et al., ALENEX 2014; Aum\"uller & Dietzfelbinger, TALG 2016; Wild, PhD thesis 2016) and the inclusion of Dual-Pivot Quicksort in the Java runtime library). We demonstrate that our 4-way Powersort implementation can achieve substantial speedups over standard (2-way) Powersort and other stable sorting methods without compromising the optimally run-adaptive performance of Powersort.<br />Comment: 17 pages; accompanying source code at https://github.com/sebawild/powersort; v2 adds new figure and text changes. v2 is identical to the ALENEX 2023 version

Details

Database :
arXiv
Journal :
ALENEX 2023
Publication Type :
Report
Accession number :
edsarx.2209.06909
Document Type :
Working Paper
Full Text :
https://doi.org/10.1137/1.9781611977561.ch16