Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Add instrumentation | Bobby Bingham | 2014-10-29 | 1 | -2/+1 |
| | | | | | Track the number of comparisons, swaps, and rotations performed in each part of the sorting algorithm. | ||||
* | Split helper functions into their own translation units | Bobby Bingham | 2014-10-26 | 1 | -88/+11 |
| | |||||
* | Fix buffer distribution step | Bobby Bingham | 2014-10-26 | 1 | -1/+1 |
| | | | | If there are no sorted elements to distribute the buffer into, we're done. | ||||
* | Use binary search in distribute buffer | Bobby Bingham | 2014-08-23 | 1 | -5/+2 |
| | |||||
* | Optimize rotate | Bobby Bingham | 2014-08-18 | 1 | -15/+13 |
| | | | | | | | | | | | | | | | Previously, we used three rotations. This was simple, but was aggressively inlined by gcc at higher optimization levels, massively bloating the code. Now, we take the front of the array, which is to be rotated to the end, and using a series of swaps, move it progressively closer to the end. When we can no longer perform a swap of the required size because we're too close to the end, we view the remaining operation as a rotate to the right with a smaller shift size. We repeat as necessary. This generates somewhat smaller code than the three reverses, even at -Os. It also shows up to a 25% overall performance improvement for grailsort on some inputs. | ||||
* | Optimize swap for larger swaps | Bobby Bingham | 2014-07-31 | 1 | -0/+14 |
| | |||||
* | Use linear search when distributing buffer | Bobby Bingham | 2014-07-31 | 1 | -4/+2 |
| | |||||
* | Factor out binary_search | Bobby Bingham | 2014-07-17 | 1 | -21/+2 |
| | |||||
* | Vastly improve performance of distribute_buffer | Bobby Bingham | 2014-07-06 | 1 | -10/+11 |
| | |||||
* | Move wikisort/grailsort common code to a shared header | Bobby Bingham | 2014-07-06 | 1 | -0/+107 |