Fullscreen for best experience. To minimize lag, close all of your Chrome tabs except this one. To mute sound, turn down the volume of your device to 0%. Turbo mode is turned on automatically. Featuring: - Over 100 Sorts - Over 50 Shuffles - Too Many Exchange Sorts - And A Bit Moredata:image/png;base64,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data:image/png;base64,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<#1>
a1
ig01
i1i112i-1a1b12
i11i-1
i11i-1
i111i-1gap-1
i11i1gap-1
i11i-1
i11i-1
i11i-1
i11i-1
i1
i-1
i12c-1
i1
i1
i12end-1
gap-1
gap-11i1gap-11
gap2gap1gap1.5
2Lime Sort2Orange Sort2Grapefruit Sort2Kinnow Sort3Kiyomi Sort3Chinotto Sort3Mandarin Orange Sort3
3Invered Sort3Citron Sort2Single Directional Chinotto Sort3Single Directional Mandarin Orange Sort3Quasi-Rotating Red Lime2Rotating Red Lime Sort2Hyuganatsu Sort2Rotating Hyuganatsu Sort2Orange Sort 22Flip Orange Sort2Flip Red Sort2Key Lime Sort2
.25Imsimm Sort.5Imsimm Sort 2.5Pop Sort 2.5Crack Sort 2.5Single Directional Pop Sort 2.5V Sort1.5
2Rotating Selection Sort2Sandpaper Sort0.4Double Sandpaper Sort0.4Bad Sort2424Flip Selection Sort2Flip Sandpaper Sort1Flapaper Sort0.4Wiggle Sandpaper0.4Dumb Selection Sort.16Bubgo Sort1Bingo Sort1Assoclist Sort1
2Binary Insertion Sort2Linebinary Insertion Sort2Shell Sort0.75Ciura Gap Shell Sort1Progressive Sort2Progressive Sort 22Y-Progressive Sort2Optimized Z-Stooge Sort.15Marshmallow Sort2Marshmallow Sort (Extended Gaps)2Flip Insertion Sort2
i1list11
1Quick Sort (Middle Pivot)1Stable Quick Sort2LR Quick Sort1Hybrid Quicksort1Sort ListMedian Quicksort2Fake Quicksort2Fake Quick Pairwise Sort2
__ Array Writes1gap2
__ Array Writes1_ Aux Array Writes1i11
Code by taluvina
listfocus0
iiter1
1Base 3 Odd-Even Sort1Base 4 Odd-Even Sort1Base n/16 Odd-Even Sort1Rouge Odd-Even Sort2Comb Odd-Even Sort2Odd then Even Sort0.75Odd then Even Sort + Merge0.75
iiter1
iiter1
iiter1
iiter1base-1
iiter1
iiter1i1j2
j1
j1
1green0
_ Comparisons1i1j-1extra pointers
llist1
Sort to runAll Sorts
0.5_ Current SortFinished!
Shuffle to RunAll Shuffles
20
i11
i110
__ Array Writes11__ Array Writes11400
i110
i110
a1b-11000
i1j2
Already SortedReversedAlmost SortedAlmost ReversedNearly SortedNearly Reversed
Reversed Few UniqueAlmost Sorted Few UniqueVery Few UniqueTwo UniqueAlready Sorted Few UniqueBinaryBinary Alternating
Tent ShapedW ShapedM ShapedSine WaveReversed Sine WaveShuffled Sine WaveInterweavedIntersineDouble LayeredReversed Double LayeredYAV ShapeInterlaced
Reversed Final MergeSawtoothSawtooth 2Cubic Final MergeQuintic Final MergeCubic SawtoothQuintic Sawtooth
Reverse RotatedPartially RotatedPartially Rotated Other Direction
ig-1
0.5Cocktail Rouge Sort0.5Looping Rouge Sort0.5Rotate Rouge Sort1Rotate Looping Rouge Sort1Comb Sort1Cocktail Comb Sort1Looping Comb Sort1Rotate Comb Sort1Rotate Looping Comb Sort1Feijeland Sort1Rotate Feijeland Sort1Brush Sort1Feijeland Sort 21.19203Coll Sort13-Smooth Comb Sort.625Pseudo-Shell Sort0.5
gap-1
ig-1
gap1.3
gap1.31i1gap1.31
ig1.3
gap1.3
ig1.3
i
i
gap1.3
gap1.3
This block carries out the given script for each item of the given list, like the primitive FOR EACH. What's different is that it provides the # variable, which will contain the item number in the list of each item in turn, 1 while processing item 1, and so on.
ca:_ per cada _ de _ _
tempab122_ Aux Array Writes1_ Comparisons12i
2In-Place Merge Sort2Bottom-Up Merge Sort2Iterative Merge Sort2Iterative In-Place Merge Sort2
ab12
iiter1base1.3
11
Reverse CubicQuinticReverse QuinticQuadraticShuffled QuadraticQuarticShuffled QuarticSquare RootReverse Square RootCube RootReverse Cube Root
1
i2size42isize2
enddone?false1end-1
_ Comparisons1index11true
0.5Ternary Heap Sort0.5Quaternary Heap Sort0.5Base 64 Heap Sort0.5Base n Heap Sort0.5Base-n/16 Heap Sort0.5Base-log n Heap Sort0.5Unary Heap Sort0.15Base 1.5 Heap Sort0.5
_ Comparisons1index11true
highlighthighlight 21
highlighthighlight 2M121
highlighthighlight 2M1413truetrue
highlighthighlight 2M1312
i1end-1
end-1done?trueistart1
end-1done?true2start1done?true
1
-1
4Sinking Sort4Cocktail Shaker Sort4Cashew Sort4Walnut Sort4Trashew Sort4Pecan Sort4Almond Sort4Random Nut Sort4Pop Sort1.5Crack Sort1.5Single Directional Pop Sort1.5
2424Egoots Sort24243/4 Stooge Sort1616
3030Slow Sort3030Cocktail Slow Sort4040BSY Slow Sort3030BSY Silly Sort3030
highlighthighlight 21
j1
low1high-11
i1
Reversed Final RadixPenultimate RadixCircle SortedCircle Sorted Penultimate RadixShuffle ListFinal Pairwise PassReversed Final Pairwise PassSorted PairsShuffle ListQuick SortedShuffle ListRotate Looping Comb SortedReverse Rotate Looping Comb Sorted
midmid2false0true_ Comparisons1
__ Array Writes11__ Array Writes11
end-1done?true2start1done?true
end-1start1iternum1
end-1done?true3start1done?true
i110
end-1start1iternum1
end-1start1iternum1
-1
1
211
highlighthighlight 2M1312
highlighthighlight 2M121
highlighthighlight 21
done?falsedone?false
done?falsedone?false
low1high-1mid2201
ig1.3
i11i-1
i__ Array Writes11
Circle Final MergeReversed Shuffled Final MergeShuffled Cubic Final MergeShuffled Quintic Final Merge
listfocus0l2r-2pivotxij_ Comparisons1i1j-1leftrightw2
low1high1high-2low-1high-11i1
i__ Array Writes1gap1
i22122312
i
maxstart1end-1
gap2
i0i
highlighthighlight 21lol1
<#n>gap.5
#1.Stage-210Stage25-1515invalidvalid20invalidvalidrselectedcpos20#1.Stage-210Stage25-1515valid
<#n>gap.5
i11
k1
i1list11
ab126016
Scrambled HeadScrambled TailScrambled Head + TailShuffle ListDouble Layered ShuffleShuffled TopShuffled BottomShuffle ListPartitioned Array
i2
i110
_ Comparisons1i1k-1
j1
s1
sort mergei12merge12merge__ Array Writes11__ Array Writes11
i111gap2i1
11gap2i1
1
2020Y-Stooge Sort1616Z-Stooge Sort1313XY-Stooge Sort2020Hyperstooge Sort99Really Bad Sort99Omegaomega Hyperstooge Sort55
4848Gappy Stooge Sort2020Gappy Stooge Sort 22020Room Stooge Sort3030Bitonic Stooge Sort1616
aiii
index1
swappedlowhighmidswappedmid2lowhigh1
high-1i1212
2Quasi-Circle Sort2.5Circloid Sort23/4 Circle Sort3030Bladson Sort3Bladson Sort 23Bitonic Circle Sort3Optimized Stooge Sort?3Flop Sort2Flap Sort2Bolco Sort3Serkl Sort A2Serkl Sort B2Freezing Sort2Hybrid Circloid Sort2
swappedlowhighmidswappedfalselowhighlow1high-1mid140
__ Array Writes11__ Array Writes11
Runs the script repeatedly, as long as the condition is true. Tests the condition before the first time the script is run. Like the built in REPEAT UNTIL except that in this block the condition must be true, not false.
pt:enquanto _ , repete _ $loop-0.7
low1high1high-1high-1low-11
ii1
low1high11
1d2done?falsegap211
low1high-1i11low1high-1
1d2done?falsegap211
1d2done?falsegap211
done?falsedone?false
_ Aux Array Writes1_ Comparisons12i1
listfocus0
Negative Bell CurveShuffled Bell CurveSincReversed SincShuffled SincDivisor (Sigma 0)Divisor (Sigma 1)Divisors of Divisors
low1high-1aba111b1a1
Catch errors. Runs the first script. If it succeeds, nothing else happens. But if it has an error (something that would otherwise result in a red halo around the block), then the second script is run, with the text of the error message that would have been shown in the variable ERROR.
pt:tenta executar _ e, em caso de erro _ , executa _ return
Throw an error. Makes a red halo appear around the script that runs it, with the input text shown in a speech balloon next to the script, just like any Snap! error. This is useful to put in the second script of SAFELY TRY after some other instructions to undo the partial work of the first script.
pt:lança o erro _
LET (FOO) BE (5) is equivalent to SCRIPT VARIABLES (FOO) SET (FOO) TO (5)
pt:cria a variável de guião _ com valor _
Catch errors in a reporter. Evaluates its first input. If that expression successfully reports a value, this block reports that value. If the expression causes a Snap! error, then the final input slot is evaluated with the text of what would have been the error message in variable ERROR. SAFELY TRY then reports the value of that final expression. Sometimes you'll want to throw an error in the final expression. You can put an ERROR block inside a CALL block to do that.
err
1Sort ListFun Sort123454E Sort6Sort ListModulo Sort (Base 2)1Modulo Sort (Base 4)1Modulo Sort (Base 10)1Modulo Sort (Base 64)1Sort ListHeap Sort.5Min Heap Sort.5Naive Ternary Heap Sort.5Sort ListQuad Stooge Sort.5hope sort0Sort ListModulo Sort.5Modulo Sort.5Modulo Sort.5Diamond Sort.5
maxpos0b1b1
sort mergei
2
2Bitonic Healy Sort2Bad Merge Sort3Pseudo-Heap Merge Sort2Circle Merge Sort2Mini Merge Sort2Cursed Weave Merge Sort2Semi-Stooge Merge Sort3Semi-Stooge Merge Sort 23Reglab Sort2Reglab Sort 22Quick SP Sort2Shell Merge Sort 224-Weave Merge Sort 22
i-110
i1
i2
1Base-3 Weave Sort.625Base-4 Weave Sort.625Base-4 Weave Sort 21Recursive Comb Sort.625Improved Weave Sort.625Iterative Weave Sort.625
__ Array Writes1
gap2iii
22
11
i22
1
0.5Lazy Opti. Quad-Stooge Sort0.5Opti. Awkward Sort0.5
1falsefalse1
2Iterative In-Place Merge Sort 22Shell Merge Sort0.5Iterative Shell Merge Sort0.5Binary Merge Sort2Binary Insertion Merge Sort2In-Place Binary Merge Sort2Weave Merge Sort2In-Place Merge Sort 32Old In-Place Merge Sort1Old Iterative In-Place Merge Sort1Rotate Merge Sort1Iterative In-Place Merge Sort (Reversal Rotations)2
sort mergei1m211
sort mergei1m211i2asize4size2
i222
gap2_ Comparisons1i
i2size42s1isize2
highlighthighlight 21
1515Bad Selection Sort1515
true
464644Insertion Bogosort448484Binary Insertion Bogosort440404Pogosort448484Bubble Bogosort532325Shell Bogosort530305Circle Bogosort524245Exchange Bogosort524245Selection Bogosort464644Sort ListBogosort77Bozosort77Gorosort77Bakasort77
b_ Comparisons1
__ Array Writes11__ Array Writes11
i1
i11
Ternary Digit ReversalQuaternary Digit Reversal1.5-ary Digit ReversalB2DR + BD3R AB2DR + BD3R BB3DR + BD2R AB3DR + BD2R BShuffle ListCubic B2DRCubic B3DRCubic B4DRShuffle ListQuintic B2DRQuintic B3DRQuintic B4DRShuffle ListBinary Digit Reversal w/o Digit AdditionTernary Digit Reversal w/o Digit AdditionQuaternary Digit Reversal w/o Digit Addition1.5-ary Digit Reversal w/o Digit AdditionShuffle ListBalanced Ternary (abs val)Balanced TernaryShuffle ListBase 3 as Base 2Base 4 as Base 2Base 4 as Base 3Shuffle ListBit Circ B2 + Bit Circ B3 ABit Circ B2 + Bit Circ B3 BBit Circ B3 + Bit Circ B2 ABit Circ B3 + Bit Circ B2 BShuffle ListBit Circ B2 + Bit Circ B5 ABit Circ B2 + Bit Circ B5 BBit Circ B5 + Bit Circ B2 ABit Circ B5 + Bit Circ B2 BShuffle ListBit Circ B3 + Bit Circ B5 ABit Circ B3 + Bit Circ B5 BBit Circ B5 + Bit Circ B3 ABit Circ B5 + Bit Circ B3 B
i1end11
0.5_ Current Sort1Finished!Moving on to 110.5
pt:a frequência da nota _ 69
de:fange _ _ ca:agafa _ _ es:atrapar _ _ fr:attrape _ _ pt:captura _ _ cont
de:wirf _ ca:llança _ es:lanzar _ fr:lance _ pt:lança _ catchtag
i11
false_ Comparisons1r11
1Pair-2Pair01
1Pointer1
falsetruetruep2c1b11p1falsefalsefalser12p21c1b1truefalsetrue_ Comparisons101_ Comparisons1truefalse
truetrues11falsefalseIndex12s1s1falsetrue1_ Comparisons1*s1r10*s1r1_ Comparisons1*s1r1falsetruefalse
Ktruer1211r12_ Comparisons1
Ktruer1211r12_ Comparisons1
Ktruer21r2
2Bottom Up Merge Sort2Iterative Merge Sort2Smoothsort2Aspen Sort2K-ary Max Heap Sort2K-ary Min Heap Sort2Flipped K-ary Min Heap Sort2
i
aiii
i22
sort merge recursei12merge12merge
b1d-1
_ Comparisons111
0.2Grass Sort0.3Grass Sort 20.3Dandelion Sort0.3Float Sort0.3
0
0.5Pseudo-Heap Sort0.5Kovlo Sort0.5Sandbubble Sort2Mini Quick Sort0.5Wavy Sort2Duo Pointer Sort2Archae Sort0.2Archaedana Sort0.2Cursed Bubble Sort0.2
low1high-1c-2
low1high-1
1
gap2done?falsegap3
highlighthighlight 2M13012
1
Recursed Reversals (1/3 Mult Fac)Recursed Reversals (2/3 Mult Fac)Recursed Reversals (2/5 Mult Fac)Recursed Reversals (1/5 Mult Fac Left)Recursed Reversals (1/5 Mult Fac Right)Shuffle ListRecursed Rotations (1/2 Mult Fac)Recursed Rotations (1/3 Mult Fac)Recursed Rotations (2/3 Mult Fac)Recursed Rotations (3/4 Mult Fac)Shuffle ListRecursed WeavesShuffle ListGray Code LeftGray Code RightQuicksort KillerInverse QSKShuffle ListBST 0.5BST 0.9BST 0.1BST --> RFX
index2
3i1i1
highlighthighlight 2M21
_ Comparisons111b1d-1
1gap2g2
i11
i11
i11
_ Comparisons1minmaxjj1i1max change?false#itemmax change?true
0.6Line Sort0.6Indexing Sort0.6Decrement Sort1DL Sort2
xij_ Comparisons1i1j-1extra pointers
highlighthighlight 2111
1
i110
low1high-1
swappedlowhighswappedfalselowhighlow1high-1
gap-1
gap-1
_ Comparisons1_ Comparisons11
a_ Comparisons11_ Comparisons11
2121true
121true
1241true
_ Comparisons1_ Comparisons11
highlighthighlight 21
highlighthighlight 21
_ Comparisons1highlighthighlight 21
_ Comparisons1highlighthighlight 21
_ Comparisons1highlighthighlight 211111
1
i11
i11
i1ia2
a1b1
a1
1000
j
i11
maxStageStage2Stage-2Stage0.75Stage218,3,0,1i1Stage-210Stage25-15Current Sort: 15-15Numbers: 15-15Comparisons: 15-15Swaps: 15-15Main Array Writes: 15-15Aux Array Writes: 15
ai1tagi11
i11
a1#211
1i11
Icicles (Base 2)Icicles (Base 3)Icicles (Base 10)WisteriaWisteria (Base 2)Wisteria (Base 3)Wisteria (Base 10)Sierpinski TriangleTilted Sierpinski TriangleFractal MountainsWhole Number Sierpinski Triangle2 Sierpinski TrianglesPenta TriangleTempleStairsPenta SierpinskiPentagonal SierpinskiSjevsilekova 4,5Sjevsilekova 4,7Sierpinski Triangle on DrugsSierpinski Triangle on Drugs 2Shuffle ListstgTriangle 4Bozairah
i11i-1
i1
partition sortpartition1
partition partition2 sortpartitionlow18
merge sort circle merge22merge12mergelow1high-1low1high11mergemergemerge1
a2falsea12falsea1true
1k2
oli10item
i
i22true
ai1b1
i1i1gap1.3end-1
Random i to nRandom 1 to n-i
1Sinking Sort1Cocktail Shaker Sort1
midmid21
_ Aux Array Writes1_ Comparisons12i
gap2
#itemi1j1i1j1atag132
merge sort recurse12merge-112merge1
i1
i12212
b2a2b2b2
a_ Comparisons1a132120
b2a
1.61829480i1end-1
.625Recursive Shell Sort (Power of 3 Gaps).625Strand Insertion Sort0.375Strand Insertion Sort 20.25L10 Strand Insertion Sort0.3LSqrt(n) Strand Insertion Sort0.2Ln/16 Strand Insertion Sort0.2Reverse Insertion Sort.5Partition Insertion Sort.5Insort Sort0.5Rotate Insert-Sandpaper Strand Sort0.3BDC Insertion Sort0.25Matrix Partition Sort0.5
_ Aux Array Writes1_ Comparisons1i
abab111
1b-11
a1
Strands of Sqrt(n)Strands of n/16
c11
__ Array Writes11
i1list1
d-11n121
d-111
_ Comparisons1_ Comparisons111msecendab1
0123
b_ Comparisons1
0123456
falsetrue
j11
donetruetrue
true
extra pointers1__ Array Writes112__ Array Writes11
gap2
.625
b1a1
012
012
i111
__ Array Writes11
1segmstart1
segmstart
segmstart
maxStageStage2Stage-20.1Stage-2Stage0.75Stage218,3,0,1i1Stage-210Stage25-15Current Sort: 15-15Numbers: 15-15Comparisons: 15-15Swaps: 15-15Main Array Ops: 15-15Aux Array Ops: 15
maxStageStage2Stage-20.1Stage-2Stage0.3751Stage218,3,0,1i1Stage-210Stage25-15Current Sort: 15-15Numbers: 15-15Comparisons: 15-15Swaps: 15-15Main Array Ops: 15-15Aux Array Ops: 15
maxStageStage2Stage-20.1Stage-2Stage218,3,0,1i1Stage-210Stage25-15Current Sort: 15-15Numbers: 15-15Comparisons: 15-15Swaps: 15-15Main Array Ops: 15-15Aux Array Ops: 15
01222223
initial values are 1, length, 1, 0, false
0122222
212searchareaminsearcharea12i2i12
i
1
2
1141121412112
enabenj1#itema1bctemptemp2a1_ Aux Array Writes1temptemp2i20btemp#itemindex1__ Array Writes11__ Array Writes111
_ Aux Array Writes1_ Comparisons12i
enabenj1#itema1bcindex1__ Array Writes11__ Array Writes11
temptemp2aba_ Aux Array Writes1temptemp2i10b#item1
1.129450#itemend
0sortedunsorted#item
tempabtempbba1j01a1b
ba1j01a1bgap
ba1j01a1bgap
b2a2b2b2
1min1start1i1minstart1
64
64
a-1b-2
a2b1
b2aa11d2
ab1c1a12112
ab1c1a121121
12112aba1b1a1
i1
j1i11111
aa12012
b2dit-1b2dit1dsizedsize2dit1b2dit-11211121true
i11
oddevenoddeveniiiitemiitem22
bucketsbucketsij11
_ Comparisons1_ Aux Array Writes11__ Array Writes1i1i1#item
141141211234134121112112121
bucketsbucketsij1j1
bucketsbucketsij1
i1j1a132
2
i11
2
2
OR #-1XOR #-1Reversed ANDReversed ORReversed XORShuffle ListV ANDV ORV XORRFRX ANDRFRX ORRFRX XOR
21.573920__ Array Writes1list1-4932798max change?falsemaxi1i164.2927840max change?truei1unique elementsi1listi1
tempabbasebasetempbba1j01a1b1
Recursive Final Radix (Base 3)Recursive Final Radix (Base 4)Recursive Final Radix (Base 5)RFXR 11Shuffle ListRFX 01RFX 10RFXR 01RFXR 10RFXR 00Shuffle ListRFX 001RFX 010RFX 011RFX 100RFX 101RFX 110Shuffle ListRFX 0001RFX 0010RFX 0011RFX 0100RFX 0101RFX 0110RFX 0111RFX 1000Shuffle ListRFX 1001RFX 1010RFX 1011RFX 1100RFX 1101RFX 1110Shuffle ListBST (RFX)RSO BST (RFX)Reversed BST (RFX)Reversed RSO BST (RFX)Shuffle ListIRFX 001IRFX 010IRFX 011IRFX 100IRFX 101IRFX 110
1211214
i1121212112
2
i2size42size2
tempabbasebasetempbba1j10a1b1
_ Aux Array Writes1i11_ Aux Array Writes1_ Comparisons1i1__ Array Writes1
a1111
1211212
i2size42size2
i2size42size2
_ Comparisons1_ Comparisons111msecendab1
1_ Comparisons1_ Comparisons1_ Comparisons111111
1
2
1_ Comparisons1_ Comparisons1_ Comparisons111111
23.2942012112
128,64,192,32,96,160,224,16,48,80,112,144,176,208,240,8,24,40,56,72,88,104,120,136,152,168,184,200,216,232,248,4,12,20,28,36,44,52,60,68,76,84,92,100,108,116,124,132,140,148,156,164,172,180,188,196,204,212,220,228,236,244,252,2,6,10,14,18,22,26,30,34,38,42,46,50,54,58,62,66,70,74,78,82,86,90,94,98,102,106,110,114,118,122,126,130,134,138,142,146,150,154,158,162,166,170,174,178,182,186,190,194,198,202,206,210,214,218,222,226,230,234,238,242,246,250,254,1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63,65,67,69,71,73,75,77,79,81,83,85,87,89,91,93,95,97,99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,129,131,133,135,137,139,141,143,145,147,149,151,153,155,157,159,161,163,165,167,169,171,173,175,177,179,181,183,185,187,189,191,193,195,197,199,201,203,205,207,209,211,213,215,217,219,221,223,225,227,229,231,233,235,237,239,241,243,245,247,249,251,253,255,000129None68633685Bubble Sort,Sinking Sort,Cocktail Shaker Sort,Cashew Sort,Walnut Sort,Trashew Sort,Pecan Sort,Almond Sort,Random Nut Sort,Pop Sort,Crack Sort,Single Directional Pop Sort,Rouge Sort,Cocktail Rouge Sort,Looping Rouge Sort,Rotate Rouge Sort,Rotate Looping Rouge Sort,Comb Sort,Cocktail Comb Sort,Looping Comb Sort,Rotate Comb Sort,Rotate Looping Comb Sort,Feijeland Sort,Rotate Feijeland Sort,Brush Sort,Feijeland Sort 2,Coll Sort,3-Smooth Comb Sort,Pseudo-Shell Sort,Lemon Sort,Lime Sort,Orange Sort,Grapefruit Sort,Kinnow Sort,Kiyomi Sort,Chinotto Sort,Mandarin Orange Sort,Red Sort,Invered Sort,Citron Sort,Single Directional Chinotto Sort,Single Directional Mandarin Orange Sort,Quasi-Rotating Red Lime,Rotating Red Lime Sort,Hyuganatsu Sort,Rotating Hyuganatsu Sort,Orange Sort 2,Flip Orange Sort,Flip Red Sort,Key Lime Sort,Gnome Sort,Grass Sort,Grass Sort 2,Dandelion Sort,Float Sort,Odd-Even Sort,Base 3 Odd-Even Sort,Base 4 Odd-Even Sort,Base n/16 Odd-Even Sort,Rouge Odd-Even Sort,Comb Odd-Even Sort,Odd then Even Sort,Odd then Even Sort + Merge,Quick Sort,Quick Sort (Middle Pivot),Stable Quick Sort,LR Quick Sort,Hybrid Quicksort,Median Quicksort,Fake Quicksort,Fake Quick Pairwise Sort,Circle Sort,Quasi-Circle Sort,Circloid Sort,3/4 Circle Sort,Bladson Sort,Bladson Sort 2,Bitonic Circle Sort,Optimized Stooge Sort?,Flop Sort,Flap Sort,Bolco Sort,Serkl Sort A,Serkl Sort B,Freezing Sort,Hybrid Circloid Sort,Mountain Sort,Weave Sort,Base-3 Weave Sort,Base-4 Weave Sort,Base-4 Weave Sort 2,Recursive Comb Sort,Improved Weave Sort,Iterative Weave Sort,Rhode Sort,Imsimm Sort,Imsimm Sort 2,Pop Sort 2,Crack Sort 2,Single Directional Pop Sort 2,V Sort,Flauchtziht Sort,Pseudo-Heap Sort,Kovlo Sort,Sandbubble Sort,Mini Quick Sort,Wavy Sort,Duo Pointer Sort,Archae Sort,Archaedana Sort,Cursed Bubble Sort,Selection Sort,Rotating Selection Sort,Sandpaper Sort,Double Sandpaper Sort,Bad Sort,Flip Selection Sort,Flip Sandpaper Sort,Flapaper Sort,Wiggle Sandpaper,Dumb Selection Sort,Bubgo Sort,Bingo Sort,Assoclist Sort,Heap Sort,Ternary Heap Sort,Quaternary Heap Sort,Base 64 Heap Sort,Base n Heap Sort,Base-n/16 Heap Sort,Base-log n Heap Sort,Unary Heap Sort,Base 1.5 Heap Sort,Insertion Sort,Binary Insertion Sort,Linebinary Insertion Sort,Shell Sort,Ciura Gap Shell Sort,Progressive Sort,Progressive Sort 2,Y-Progressive Sort,Optimized Z-Stooge Sort,Marshmallow Sort,Marshmallow Sort (Extended Gaps),Flip Insertion Sort,Recursive Shell Sort,Recursive Shell Sort (Power of 3 Gaps),Strand Insertion Sort,Strand Insertion Sort 2,L10 Strand Insertion Sort,LSqrt(n) Strand Insertion Sort,Ln/16 Strand Insertion Sort,Reverse Insertion Sort,Partition Insertion Sort,Insort Sort,Rotate Insert-Sandpaper Strand Sort,BDC Insertion Sort,Matrix Partition Sort,Merge Sort,In-Place Merge Sort,Bottom-Up Merge Sort,Iterative Merge Sort,Iterative In-Place Merge Sort,In-Place Merge Sort 2,Iterative In-Place Merge Sort 2,Shell Merge Sort,Iterative Shell Merge Sort,Binary Merge Sort,Binary Insertion Merge Sort,In-Place Binary Merge Sort,Weave Merge Sort,In-Place Merge Sort 3,Old In-Place Merge Sort,Old Iterative In-Place Merge Sort,Rotate Merge Sort,Iterative In-Place Merge Sort (Reversal Rotations),Opti. Quad-Stooge Sort,Lazy Opti. Quad-Stooge Sort,Opti. Awkward Sort,Odd-Even Merge Sort,Healy Sort,Bitonic Healy Sort,Bad Merge Sort,Pseudo-Heap Merge Sort,Circle Merge Sort,Mini Merge Sort,Cursed Weave Merge Sort,Semi-Stooge Merge Sort,Semi-Stooge Merge Sort 2,Reglab Sort,Reglab Sort 2,Quick SP Sort,Shell Merge Sort 2,4-Weave Merge Sort 2,Pigeonhole Sort,Line Sort,Indexing Sort,Decrement Sort,DL Sort,Poop Merge Sort,Stooge Sort,Egoots Sort,3/4 Stooge Sort,Circle Stooge Sort,Gappy Stooge Sort,Gappy Stooge Sort 2,Room Stooge Sort,Bitonic Stooge Sort,X-Stooge Sort,Y-Stooge Sort,Z-Stooge Sort,XY-Stooge Sort,Hyperstooge Sort,Really Bad Sort,Omegaomega Hyperstooge Sort,Silly Sort,Slow Sort,Cocktail Slow Sort,BSY Slow Sort,BSY Silly Sort,Dumb Merge Sort,Bad Selection Sort,Less Bogosort,Insertion Bogosort,Binary Insertion Bogosort,Pogosort,Bubble Bogosort,Shell Bogosort,Circle Bogosort,Exchange Bogosort,Selection Bogosort,Bogosort,Bozosort,Gorosort,BakasortBubble Sort4Sinking Sort4Cocktail Shaker Sort4Cashew Sort4Walnut Sort4Trashew Sort4Pecan Sort4Almond Sort4Random Nut Sort4Pop Sort1.5Crack Sort1.5Single Directional Pop Sort1.5Rouge Sort0.5Cocktail Rouge Sort0.5Looping Rouge Sort0.5Rotate Rouge Sort1Rotate Looping Rouge Sort1Comb Sort1Cocktail Comb Sort1Looping Comb Sort1Rotate Comb Sort1Rotate Looping Comb Sort1Feijeland Sort1Rotate Feijeland Sort1Brush Sort1Feijeland Sort 21.19203Coll Sort13-Smooth Comb Sort.625Pseudo-Shell Sort0.5Lemon Sort2Lime Sort2Orange Sort2Grapefruit Sort2Kinnow Sort3Kiyomi Sort3Chinotto Sort3Mandarin Orange Sort3Red Sort3Invered Sort3Citron Sort2Single Directional Chinotto Sort3Single Directional Mandarin Orange Sort3Quasi-Rotating Red Lime2Rotating Red Lime Sort2Hyuganatsu Sort2Rotating Hyuganatsu Sort2Orange Sort 22Flip Orange Sort2Flip Red Sort2Key Lime Sort2Gnome Sort0.2Grass Sort0.3Grass Sort 20.3Dandelion Sort0.3Float Sort0.3Odd-Even Sort1Base 3 Odd-Even Sort1Base 4 Odd-Even Sort1Base n/16 Odd-Even Sort1Rouge Odd-Even Sort2Comb Odd-Even Sort2Odd then Even Sort0.75Odd then Even Sort + Merge0.75Quick Sort1Quick Sort (Middle Pivot)1Stable Quick Sort2LR Quick Sort1Hybrid Quicksort1Median Quicksort2Fake Quicksort2Fake Quick Pairwise Sort2Circle Sort2Quasi-Circle Sort2.5Circloid Sort23/4 Circle Sort3030Bladson Sort3Bladson Sort 23Bitonic Circle Sort3Optimized Stooge Sort?3Flop Sort2Flap Sort2Bolco Sort3Serkl Sort A2Serkl Sort B2Freezing Sort2Hybrid Circloid Sort2Mountain Sort.625Weave Sort1Base-3 Weave Sort.625Base-4 Weave Sort.625Base-4 Weave Sort 21Recursive Comb Sort.625Improved Weave Sort.625Iterative Weave Sort.625Rhode Sort.25Imsimm Sort.5Imsimm Sort 2.5Pop Sort 2.5Crack Sort 2.5Single Directional Pop Sort 2.5V Sort1.5Flauchtziht Sort0.5Pseudo-Heap Sort0.5Kovlo Sort0.5Sandbubble Sort2Mini Quick Sort0.5Wavy Sort2Duo Pointer Sort2Archae Sort0.2Archaedana Sort0.2Cursed Bubble Sort0.2Selection Sort2Rotating Selection Sort2Sandpaper Sort0.4Double Sandpaper Sort0.4Bad Sort2424Flip Selection Sort2Flip Sandpaper Sort1Flapaper Sort0.4Wiggle Sandpaper0.4Dumb Selection Sort.16Bubgo Sort1Bingo Sort1Assoclist Sort1Heap Sort0.5Ternary Heap Sort0.5Quaternary Heap Sort0.5Base 64 Heap Sort0.5Base n Heap Sort0.5Base-n/16 Heap Sort0.5Base-log n Heap Sort0.5Unary Heap Sort0.15Base 1.5 Heap Sort0.5Insertion Sort2Binary Insertion Sort2Linebinary Insertion Sort2Shell Sort0.75Ciura Gap Shell Sort1Progressive Sort2Progressive Sort 22Y-Progressive Sort2Optimized Z-Stooge Sort.15Marshmallow Sort2Marshmallow Sort (Extended Gaps)2Flip Insertion Sort2Recursive Shell Sort.625Recursive Shell Sort (Power of 3 Gaps).625Strand Insertion Sort0.375Strand Insertion Sort 20.25L10 Strand Insertion Sort0.3LSqrt(n) Strand Insertion Sort0.2Ln/16 Strand Insertion Sort0.2Reverse Insertion Sort.5Partition Insertion Sort.5Insort Sort0.5Rotate Insert-Sandpaper Strand Sort0.3BDC Insertion Sort0.25Matrix Partition Sort0.5Merge Sort2In-Place Merge Sort2Bottom-Up Merge Sort2Iterative Merge Sort2Iterative In-Place Merge Sort2In-Place Merge Sort 22Iterative In-Place Merge Sort 22Shell Merge Sort0.5Iterative Shell Merge Sort0.5Binary Merge Sort2Binary Insertion Merge Sort2In-Place Binary Merge Sort2Weave Merge Sort2In-Place Merge Sort 32Old In-Place Merge Sort1Old Iterative In-Place Merge Sort1Rotate Merge Sort1Iterative In-Place Merge Sort (Reversal Rotations)2Opti. Quad-Stooge Sort0.5Lazy Opti. Quad-Stooge Sort0.5Opti. Awkward Sort0.5Odd-Even Merge Sort2Healy Sort2Bitonic Healy Sort2Bad Merge Sort3Pseudo-Heap Merge Sort2Circle Merge Sort2Mini Merge Sort2Cursed Weave Merge Sort2Semi-Stooge Merge Sort3Semi-Stooge Merge Sort 23Reglab Sort2Reglab Sort 22Quick SP Sort2Shell Merge Sort 224-Weave Merge Sort 22Pigeonhole Sort0.6Line Sort0.6Indexing Sort0.6Decrement Sort1DL Sort2Poop Merge Sort2Stooge Sort2424Egoots Sort24243/4 Stooge Sort1616Circle Stooge Sort4848Gappy Stooge Sort2020Gappy Stooge Sort 22020Room Stooge Sort3030Bitonic Stooge Sort1616X-Stooge Sort2020Y-Stooge Sort1616Z-Stooge Sort1313XY-Stooge Sort2020Hyperstooge Sort99Really Bad Sort99Omegaomega Hyperstooge Sort55Silly Sort3030Slow Sort3030Cocktail Slow Sort4040BSY Slow Sort3030BSY Silly Sort3030Dumb Merge Sort1515Bad Selection Sort1515Less Bogosort464644Insertion Bogosort448484Binary Insertion Bogosort440404Pogosort448484Bubble Bogosort532325Shell Bogosort530305Circle Bogosort524245Exchange Bogosort524245Selection Bogosort464644Bogosort77Bozosort77Gorosort77Bakasort7720004342438791Bubble Sorttrue128Randomized ShuffleAlready SortedReversedAlmost SortedAlmost ReversedNearly SortedNearly ReversedFew UniqueReversed Few UniqueAlmost Sorted Few UniqueVery Few UniqueTwo UniqueAlready Sorted Few UniqueBinaryBinary AlternatingV ShapedTent ShapedW ShapedM ShapedSine WaveReversed Sine WaveShuffled Sine WaveInterweavedIntersineDouble LayeredReversed Double LayeredYAV ShapeInterlacedCubicReverse CubicQuinticReverse QuinticQuadraticShuffled QuadraticQuarticShuffled QuarticSquare RootReverse Square RootCube RootReverse Cube RootBell CurveNegative Bell CurveShuffled Bell CurveSincReversed SincShuffled SincDivisor (Sigma 0)Divisor (Sigma 1)Divisors of DivisorsRandomRandom i to nRandom 1 to n-iFinal MergeReversed Final MergeSawtoothSawtooth 2Cubic Final MergeQuintic Final MergeCubic SawtoothQuintic SawtoothShuffled Final MergeCircle Final MergeReversed Shuffled Final MergeShuffled Cubic Final MergeShuffled Quintic Final MergeStrands of Length 10Strands of Sqrt(n)Strands of n/16Scrambled OddsScrambled HeadScrambled TailScrambled Head + TailDouble Layered ShuffleShuffled TopShuffled BottomPartitioned ArrayRotatedReverse RotatedPartially RotatedPartially Rotated Other DirectionBinary Digit ReversalTernary Digit ReversalQuaternary Digit Reversal1.5-ary Digit ReversalB2DR + BD3R AB2DR + BD3R BB3DR + BD2R AB3DR + BD2R BCubic B2DRCubic B3DRCubic B4DRQuintic B2DRQuintic B3DRQuintic B4DRBinary Digit Reversal w/o Digit AdditionTernary Digit Reversal w/o Digit AdditionQuaternary Digit Reversal w/o Digit Addition1.5-ary Digit Reversal w/o Digit AdditionBalanced Ternary (abs val)Balanced TernaryBase 3 as Base 2Base 4 as Base 2Base 4 as Base 3Bit Circ B2 + Bit Circ B3 ABit Circ B2 + Bit Circ B3 BBit Circ B3 + Bit Circ B2 ABit Circ B3 + Bit Circ B2 BBit Circ B2 + Bit Circ B5 ABit Circ B2 + Bit Circ B5 BBit Circ B5 + Bit Circ B2 ABit Circ B5 + Bit Circ B2 BBit Circ B3 + Bit Circ B5 ABit Circ B3 + Bit Circ B5 BBit Circ B5 + Bit Circ B3 ABit Circ B5 + Bit Circ B3 BAND #-1OR #-1XOR #-1Reversed ANDReversed ORReversed XORV ANDV ORV XORRFRX ANDRFRX ORRFRX XORFinal RadixReversed Final RadixPenultimate RadixCircle SortedCircle Sorted Penultimate RadixFinal Pairwise PassReversed Final Pairwise PassSorted PairsQuick SortedRotate Looping Comb SortedReverse Rotate Looping Comb SortedRecursive Final RadixRecursive Final Radix (Base 3)Recursive Final Radix (Base 4)Recursive Final Radix (Base 5)RFXR 11RFX 01RFX 10RFXR 01RFXR 10RFXR 00RFX 001RFX 010RFX 011RFX 100RFX 101RFX 110RFX 0001RFX 0010RFX 0011RFX 0100RFX 0101RFX 0110RFX 0111RFX 1000RFX 1001RFX 1010RFX 1011RFX 1100RFX 1101RFX 1110BST (RFX)RSO BST (RFX)Reversed BST (RFX)Reversed RSO BST (RFX)IRFX 001IRFX 010IRFX 011IRFX 100IRFX 101IRFX 110Recursed Reversals (1/2 Mult Fac)Recursed Reversals (1/3 Mult Fac)Recursed Reversals (2/3 Mult Fac)Recursed Reversals (2/5 Mult Fac)Recursed Reversals (1/5 Mult Fac Left)Recursed Reversals (1/5 Mult Fac Right)Recursed Rotations (1/2 Mult Fac)Recursed Rotations (1/3 Mult Fac)Recursed Rotations (2/3 Mult Fac)Recursed Rotations (3/4 Mult Fac)Recursed WeavesGray Code LeftGray Code RightQuicksort KillerInverse QSKIciclesIcicles (Base 2)Icicles (Base 3)Icicles (Base 10)WisteriaWisteria (Base 2)Wisteria (Base 3)Wisteria (Base 10)Sierpinski TriangleTilted Sierpinski TriangleFractal MountainsWhole Number Sierpinski Triangle2 Sierpinski TrianglesPenta TriangleTempleStairsPenta SierpinskiPentagonal SierpinskiSjevsilekova 4,5Sjevsilekova 4,7Sierpinski Triangle on DrugsSierpinski Triangle on Drugs 2stgTriangle 4Bozairah1Randomized Shuffle,Already Sorted,Reversed,Almost Sorted,Almost Reversed,Nearly Sorted,Nearly Reversed,Few Unique,Reversed Few Unique,Almost Sorted Few Unique,Very Few Unique,Two Unique,Already Sorted Few Unique,Binary,Binary Alternating,V Shaped,Tent Shaped,W Shaped,M Shaped,Sine Wave,Reversed Sine Wave,Shuffled Sine Wave,Interweaved,Intersine,Double Layered,Reversed Double Layered,YAV Shape,Interlaced,Cubic,Reverse Cubic,Quintic,Reverse Quintic,Quadratic,Shuffled Quadratic,Quartic,Shuffled Quartic,Square Root,Reverse Square Root,Cube Root,Reverse Cube Root,Bell Curve,Negative Bell Curve,Shuffled Bell Curve,Sinc,Reversed Sinc,Shuffled Sinc,Divisor (Sigma 0),Divisor (Sigma 1),Divisors of Divisors,Random,Random i to n,Random 1 to n-i,Final Merge,Reversed Final Merge,Sawtooth,Sawtooth 2,Cubic Final Merge,Quintic Final Merge,Cubic Sawtooth,Quintic Sawtooth,Shuffled Final Merge,Circle Final Merge,Reversed Shuffled Final Merge,Shuffled Cubic Final Merge,Shuffled Quintic Final Merge,Strands of Length 10,Strands of Sqrt(n),Strands of n/16,Scrambled Odds,Scrambled Head,Scrambled Tail,Scrambled Head + Tail,Double Layered Shuffle,Shuffled Top,Shuffled Bottom,Partitioned Array,Rotated,Reverse Rotated,Partially Rotated,Partially Rotated Other Direction,Binary Digit Reversal,Ternary Digit Reversal,Quaternary Digit Reversal,1.5-ary Digit Reversal,B2DR + BD3R A,B2DR + BD3R B,B3DR + BD2R A,B3DR + BD2R B,Cubic B2DR,Cubic B3DR,Cubic B4DR,Quintic B2DR,Quintic B3DR,Quintic B4DR,Binary Digit Reversal w/o Digit Addition,Ternary Digit Reversal w/o Digit Addition,Quaternary Digit Reversal w/o Digit Addition,1.5-ary Digit Reversal w/o Digit Addition,Balanced Ternary (abs val),Balanced Ternary,Base 3 as Base 2,Base 4 as Base 2,Base 4 as Base 3,Bit Circ B2 + Bit Circ B3 A,Bit Circ B2 + Bit Circ B3 B,Bit Circ B3 + Bit Circ B2 A,Bit Circ B3 + Bit Circ B2 B,Bit Circ B2 + Bit Circ B5 A,Bit Circ B2 + Bit Circ B5 B,Bit Circ B5 + Bit Circ B2 A,Bit Circ B5 + Bit Circ B2 B,Bit Circ B3 + Bit Circ B5 A,Bit Circ B3 + Bit Circ B5 B,Bit Circ B5 + Bit Circ B3 A,Bit Circ B5 + Bit Circ B3 B,AND #-1,OR #-1,XOR #-1,Reversed AND,Reversed OR,Reversed XOR,V AND,V OR,V XOR,RFRX AND,RFRX OR,RFRX XOR,Final Radix,Reversed Final Radix,Penultimate Radix,Circle Sorted,Circle Sorted Penultimate Radix,Final Pairwise Pass,Reversed Final Pairwise Pass,Sorted Pairs,Quick Sorted,Rotate Looping Comb Sorted,Reverse Rotate Looping Comb Sorted,Recursive Final Radix,Recursive Final Radix (Base 3),Recursive Final Radix (Base 4),Recursive Final Radix (Base 5),RFXR 11,RFX 01,RFX 10,RFXR 01,RFXR 10,RFXR 00,RFX 001,RFX 010,RFX 011,RFX 100,RFX 101,RFX 110,RFX 0001,RFX 0010,RFX 0011,RFX 0100,RFX 0101,RFX 0110,RFX 0111,RFX 1000,RFX 1001,RFX 1010,RFX 1011,RFX 1100,RFX 1101,RFX 1110,BST (RFX),RSO BST (RFX),Reversed BST (RFX),Reversed RSO BST (RFX),IRFX 001,IRFX 010,IRFX 011,IRFX 100,IRFX 101,IRFX 110,Recursed Reversals (1/2 Mult Fac),Recursed Reversals (1/3 Mult Fac),Recursed Reversals (2/3 Mult Fac),Recursed Reversals (2/5 Mult Fac),Recursed Reversals (1/5 Mult Fac Left),Recursed Reversals (1/5 Mult Fac Right),Recursed Rotations (1/2 Mult Fac),Recursed Rotations (1/3 Mult Fac),Recursed Rotations (2/3 Mult Fac),Recursed Rotations (3/4 Mult Fac),Recursed Weaves,Gray Code Left,Gray Code Right,Quicksort Killer,Inverse QSK,Icicles,Icicles (Base 2),Icicles (Base 3),Icicles (Base 10),Wisteria,Wisteria (Base 2),Wisteria (Base 3),Wisteria (Base 10),Sierpinski Triangle,Tilted Sierpinski Triangle,Fractal Mountains,Whole Number Sierpinski Triangle,2 Sierpinski Triangles,Penta Triangle,Temple,Stairs,Penta Sierpinski,Pentagonal Sierpinski,"Sjevsilekova 4,5","Sjevsilekova 4,7",Sierpinski Triangle on Drugs,Sierpinski Triangle on Drugs 2,stg,Triangle 4,Bozairahtrue255truetruetrue