Sorting algorithms/Quicksort: Difference between revisions

Content added Content deleted
m (→‎{{header|REXX}}: added optimization.)
Line 4,587: Line 4,587:
<pre>[0, 1, 2, 4, 12]</pre>
<pre>[0, 1, 2, 4, 12]</pre>


=={{header|Mathematica}}==
=={{header|Mathematica}}/{{header|Wolfram Language}}==

<lang Mathematica>QuickSort[x_List] := Module[{pivot},
<lang Mathematica>QuickSort[x_List] := Module[{pivot},
If[Length@x <= 1, Return[x]];
If[Length@x <= 1, Return[x]];
Line 4,594: Line 4,593:
Flatten@{QuickSort[Cases[x, j_ /; j < pivot]], Cases[x, j_ /; j == pivot], QuickSort[Cases[x, j_ /; j > pivot]]}
Flatten@{QuickSort[Cases[x, j_ /; j < pivot]], Cases[x, j_ /; j == pivot], QuickSort[Cases[x, j_ /; j > pivot]]}
]</lang>
]</lang>

<lang Mathematica>qsort[{}] = {};
<lang Mathematica>qsort[{}] = {};
qsort[{x_, xs___}] := Join[qsort@Select[{xs}, # <= x &], {x}, qsort@Select[{xs}, # > x &]];</lang>
qsort[{x_, xs___}] := Join[qsort@Select[{xs}, # <= x &], {x}, qsort@Select[{xs}, # > x &]];</lang>

<lang Mathematica>QuickSort[{}] := {}
<lang Mathematica>QuickSort[{}] := {}
QuickSort[list: {__}] := With[{pivot=RandomChoice[list]},
QuickSort[list: {__}] := With[{pivot=RandomChoice[list]},