Add Algorithms
RiedleroD opened this issue · 2 comments
- Merge
- Natural
- Cascade
- Oscillating
- Polyphase
- Normal
- IP
- OOP
- TimSort
- Bubble Sort
- Quicksort
- Hoare
- Lomuto
- Single-Pivot
- Dual-Pivot
- Concurrent
- IP
- OOP
- Cocktail Shaker Sort
- Odd-Even Sort
- Selection Sort
- Double
- IP
- OOP
- Insertion Sort
- IP
- OOP
- Comb Sort
- Shell Sort
- Weave Merge Sort
- Merge Insertion Sort
- Library Sort
- WikiSort/BlockSort
- GrailSort
- Kirkpatrick-Reisch Sort
- Heap Sort
- siftUp
- siftDown
- Max
- Min
- Weak
- Ternary
- Smooth Sort
- Tournament Sort
- Cycle Sort
- Introsort (std::sort)
- Spread Sort
- Quick Shell Sort (Introsort with Shellsort)
- Batcher's Bitonic Sort
- Batcher's Odd-Even Merge Sort
- Pairwise Sorting Network
- Sample Sort
- Pancake Sort
- Spaghetti Sort
- Patience Sort
- Radix LSD
- Bases
- IP
- OOP
- Radix MSD
- Bases
- Swap-Hop
- Insert-Hop
- IP
- OOP
- American Flag Sort
- Shatter Sort
- Simple Shatter Sort
- Flash Sort
- Time Sort
- Proxmap Sort
- Interpolation Sort
- Counting Sort
- Bucket Sort
- Generic
- Proxmap
- Postmans' Sort
- Shuffle Sort
- In-Place
- Out-of-Place
- Burst Sort
- Cartesian Tree Sort
- Splay Sort
- Tree Sort
Now the really really bad ones. These actually exist. Mostly for fun, so these are mostly simple.
- Stooge Sort
- Bad Sort
- Silly Sort
- Slow Sort
- Gnome Sort
- Bogo Sort
- Randomness option
- Demon Sort
- Rollout Motion
- Rollin Motion
- Randswap Motion
- Inwards checking
- Outwards checking
- Concurrent mode
- DropSort
this one actually is not a valid sorting algorithm; but there is one slightly different version that's usable at the bottom of the site.
Now the ones that will like never be implemented for various reasons
- Gravity/Bead Sort
this one changes the values of items, which is impossible using my API. I suggest reading the wikipedia article on it, as it's very interesting. - Pigeonhole Sort
this one just creates a bucket for every number in the range and the puts the items in there accordingly and then puts them back in the original bucket – not generally that bad, but very much so in this program, as it's not designed to handle more than 20 buckets. It already struggles with 10. Technically its possible to implement, but I don't want to crash peoples PCs.
I could possibly implement a In-Place version, but that'd look like magic 😅
Hello! I was browsing GitHub, and came across this issue after curiously searching up "Grailsort".
I'm the manager of an open source project dedicated to researching, rewriting, and optimizing Grailsort. Our work is featured in our repo right over here: https://github.com/MusicTheorist/Rewritten-Grailsort
We actually have two Python implementations of Grailsort being worked on right now. Let us know if you have any questions!
Thanks for contacting me!
I will try to translate the one by @thatsOven into a version that works with BASAV - ofc I will include the license and links to the original repo and its contributors. I have found a few places where there is extra attention needed - for example, there is a section that copies items without swaps or insertions, which is not supported by BASAV, but I'm sure I can sort that out.
I also see that the implementation isn't complete yet, so if I can, I will help finalize that.