Mathematica Sorting Anti-Stable?
- To: mathgroup at smc.vnet.net
- Subject: [mg105262] Mathematica Sorting Anti-Stable?
- From: beckman <bc.beckman at gmail.com>
- Date: Wed, 25 Nov 2009 22:59:30 -0500 (EST)
Consider:
In[97]:= sortTestPoints = {{1, 1}, {1, 2}, {2, 1}, {2, 2}}
Out[97]= (1 1
1 2
2 1
2 2
)
To produce a lexical sort, first sort by the second element. Notice it
reverses the order of the first element (first clue that "Sort" might
be antistable)
In[99]:= Sort[sortTestPoints, #1[[2]] < #2[[2]] &]
Out[99]= (2 1
1 1
2 2
1 2
)
Now, sort by the first element
In[100]:= Sort[Sort[sortTestPoints, #1[[2]] < #2[[2]] &], #1[[1]] < #2
[[1]] &]
Out[100]= (1 2
1 1
2 2
2 1
)
But, by itself, without a value for the the optional ordering
function, Sort effects a correct lexical sort.
In[101]:= Sort@sortTestPoints
Out[101]= (1 1
1 2
2 1
2 2
)