|
|
|
|
|
by tim-peters
1806 days ago
|
|
To get more gonzo, in CPython's list.sort(), the C code that actually merges two lists (which happen, in context, to be two contiguous array slices) is in listobject.c's `merge_at(()` function. That brings in the world of "galloping" (exponential search) optimizations, much faster than one-pair-at-a-time compares in many real-world cases. So that's a whole lot of additional complication, but it's the heart of what _really_ makes timsort shine in its "jaw dropping" cases. Tim (of "timsort" - which was an inside joke name at the start, because I never expected anything outside of CPython would use it ;-) ). |
|