⚡️ Speed up function sorter by 814,643%
#8
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
📄 814,643% (8,146.43x) speedup for
sorterinsrc/dsa/various.py⏱️ Runtime :
191 milliseconds→23.5 microseconds(best of1138runs)📝 Explanation and details
Here is a highly optimized version of your
sorterusing Python's built-insort(which is implemented in C and much, much faster than any pure-Python O(n^2) implementation). The function signature and behavior (sorting in-place and returning the array) are preserved. The function's return value will be identical for all inputs.Reasoning
O(n^2)). Python's.sort()uses Timsort, which isO(n log n)and much faster for all realistic sizes of input..sort()modifiesarrin place.arrat the end for compatibility.If you want a manual, but still in-place, fast sorting method without using sort.
If you must not use built-in sort (for learning, school, constraints), you could use a faster algorithm like in-place quicksort. However, it’s highly unlikely to beat
.sort()in CPython.Let me know if you need a manual algorithm instead! But for true speed, always use the built-in.
✅ Correctness verification report:
🌀 Generated Regression Tests Details
To edit these changes
git checkout codeflash/optimize-sorter-maejkebgand push.