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]}, |