MathGroup Archive 1999

[Date Index] [Thread Index] [Author Index]

Search the Archive

RE: Sort


Hermann Meier wrote:
------------------------
Sort is not reliable. Try the following (Mathematica Version 4):

In[1]:=
Sort[{0, -Sqrt[2], 5}]

Out[1]=
{0, 5, -Sqrt[2]}

-----------------------------

The code below should improve Sort and I know of 
no cases where this modified version would mess up. 
You could put this in your (init.m).

If anyone wants to know how it works let me know.


In[1]:=
HiddenSymbols`ModifySort=True;
Unprotect[Sort];
Sort[expr_]:=
 Block[{HiddenSymbols`ModifySort},
   Sort[expr,
     If[NumericQ[#1]&&NumericQ[#2],
       Re[#1]<Re[#2]||
       (Re[#1]==Re[#2]&&Im[#1]>Im[#2]),
       OrderedQ[{#1,#2}]
      ]&
   ]
 ];
Protect[Sort];



In[5]:=
Sort[{0,x,5,t,-Sqrt[2]}]

Out[5]=
{-Sqrt[2], 0, 5, t, x}

--------------------------
Notice the patch above isn't used when you provide a sorting function.


In[6]:=
Sort[{0,5,-Sqrt[2]}, (#1>#2)&]

Out[6]=
{5, 0, -Sqrt[2]}

---------------------
Regards,
Ted Ersek


  • Prev by Date: RE: Sort
  • Next by Date: Re: Equation Font
  • Previous by thread: RE: Sort
  • Next by thread: Re: Sort