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 )