Scans the input to detect both ascending and descending runs, reverses any descending runs in-place to convert them to ascending, then merges all runs using an adaptive strategy similar to Timsort.
Symmetric run detection, recognising both forward and backward sequences, doubles the chance of finding a long natural run at any position, making it especially effective on inputs that mix ascending and descending sections.