| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
We can implement this with just a merge step, rather than completely
resorting the b subsequence.
|
| |
|
|
|
|
|
|
| |
This avoids the need to distribute the buffer through the whole array at
the end. It also allows us to skips most of the work for sorted and
reverse-sorted inputs.
|
| |
|
|
|
|
|
|
| |
Provides about a 10% overall speedup for the sorted+noise and reverse+noise
test cases. Increases the number of comparisons in some of the other
cases, but doesn't significantly change the runtime.
|
| |
|
|
|
|
|
| |
Track the number of comparisons, swaps, and rotations performed in each
part of the sorting algorithm.
|
|
|
|
|
| |
This was previously broken for certain inputs, particularly two
concatenated sorted sequences.
|
|
|
|
|
| |
Previously, we did not correctly handle some cases where a block contained
elements with a uniform value.
|
| |
|
|
|
|
|
| |
Remove unused pending variable, and unused return value from merge(). Saves
29 bytes on x86_64.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
This is a close call. On the one hand, this buffer will get jumbled when
used for merging adjacent blocks, so we'll need to sort it again before
distributing it. On the other hand, by sorting it early, we know that we
won't have to distribute it very far.
In testing, pre-sorting seems to lose out overall.
|
|
|
|
| |
This increases code size, and doesn't seem to help very significantly.
|
| |
|
|
|