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.
This pull request adds an implementation of the Flash Sort algorithm in
sorts/flash_sort.py
.Algorithm overview:
Flash Sort is a distribution-based sorting algorithm especially efficient for large datasets with elements that are uniformly distributed. Its main idea is to classify elements into buckets (classes) using a linear transformation, rearrange the array in-place using a cycle leader permutation, and finally apply insertion sort within each class for local ordering.
Implementation details:
int(0.43 * n)
(wheren
is the length of the array), following recommendations from the original paper and Wikipedia. This balance helps avoid both oversparse and overcrowded buckets.Reference:
Use cases:
Most efficient when data is numeric and uniformly distributed. For other distributions, performance may degrade.
Closes #13203
Describe your change:
Checklist: