-
Notifications
You must be signed in to change notification settings - Fork 27
Add PagedMergeSort, a merge sort using O(√n) space #71
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
LilithHafner
merged 49 commits into
JuliaCollections:master
from
LSchwerdt:pagedmergesort
Aug 18, 2023
Merged
Changes from all commits
Commits
Show all changes
49 commits
Select commit
Hold shift + click to select a range
8a63108
Add PagedMergeSort
LSchwerdt e0ebe94
Update references
LSchwerdt 0d4aa65
Return sorted vectors in sort!
LSchwerdt 4d6e518
Make midpoint() backwards compatible
LSchwerdt 58b06fb
Use PagedMergeSort when calling ThreadedPagedMergeSort in version < 1.3
LSchwerdt ce9ad62
Improve style
LSchwerdt 66315f7
Add PagedMergeSort
LSchwerdt df33439
Update references
LSchwerdt b33b4e8
Return sorted vectors in sort!
LSchwerdt a5d5cea
Make midpoint() backwards compatible
LSchwerdt c2ff440
Use PagedMergeSort when calling ThreadedPagedMergeSort in version < 1.3
LSchwerdt 2da1f83
Improve style
LSchwerdt d6f40db
Rebase and apply initial optimizations
LSchwerdt a25003e
Remove unused variable in function signatures
LSchwerdt 88e5b22
Add algorithms to readme.md
LSchwerdt 436eb79
Rename _midpoint to midpoint
LSchwerdt dad2a2c
Clarify comments in twoended_merge!
LSchwerdt cd72df0
Remove unnecessary @inbounds in twoended_merge!
LSchwerdt 90c0ca6
Explain why twoended_merge! is used in comment
LSchwerdt 7841b6a
Use midpoint instead of _midpoint
LSchwerdt 2465073
Merge remote-tracking branch 'LSchwerdt/pagedmergesort' into pagedmer…
LSchwerdt dab157f
Fix stability of twoended_merge!
LSchwerdt ea4eb9a
Change function argument locations to match base.Sort
LSchwerdt d9fcaef
Fix midpoint calculation to always round down
LSchwerdt 7b2a653
Make variable names and function signatures more consistent
LSchwerdt 297348f
Add compat for StaticArrays
LSchwerdt b51c7ce
Improve documentation
LSchwerdt 72a9550
Bump version number
LSchwerdt 47722cc
Add extra tests for stable sorting algorithms
LSchwerdt 256d1ff
Change extra tests to not use all presorted inputs
LSchwerdt a45a054
Simplify twoended_merge!
LSchwerdt f66e799
Use function for core merging loop
LSchwerdt bb4e706
Replace getNextBlock! macro by function
LSchwerdt 0d9e23f
Reduce number of arguments of next_page!()
LSchwerdt cb89f11
Refactor page permutation
LSchwerdt 5bcdbb8
Lilith's refactor
5dab2a1
Apply @LSchwerdt's suggestions
bfbe0cf
Merge pull request #1 from LilithHafner/pagedmergesort-lilith-refactor
LSchwerdt 71fc310
Simplify check for input lengths in paged_merge!
LSchwerdt 2c9ef24
Simplifcations
LSchwerdt 4bbc185
Fix indentation
LSchwerdt 3a8a53b
Remove superfluous check for small inputs in threaded_pagedmergesort!
LSchwerdt a783092
Improve formatting
LSchwerdt d3ea719
Remove ThreadedPagedMergesort
LSchwerdt 3f337f0
Use the name "scratch" instead of "buf" or "t"
LSchwerdt 56a609c
Merge branch 'master' into pagedmergesort
LilithHafner d2ea0a7
Use custom _unsafe_copyto! instead of copyto!
LSchwerdt 717f9ae
Fix: pageLocations is initialized with a negative number of elements
LSchwerdt d367ee8
Add test for small input without initial optimizations
LSchwerdt File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
Uh oh!
There was an error while loading. Please reload this page.