sort pairs

• To: mathgroup at yoda.physics.unc.edu
• Subject: sort pairs
• From: nb at eeyore.stanford.edu
• Date: Thu, 11 Nov 93 16:22:45 -0800

```> How can I sort pairs of values -- basing the sort on the first value
> and then break ties on the second value in the pair.
>
> Let's say I have n pairs on numbers in the following matrix
>
> data = { {x1,y1}, .....{xi, yi}, .....{xn,yn} }
>
> Using the Sort function in Mma, I can easily sort on the xi values, but
> how can I do the secondary sort on the yi values??

As you can see from the usage statement, you can specify an ordering
function as a second argument to Sort.

Sort[list] sorts the elements of list into canonical order.
Sort[list, p] sorts using the ordering function p.

Below I generate 10 pairs of integers in the range from 1 to 100.

In[1]:= data = Table[Random[Integer, {1, 100}], {10}, {2}]
Out[1]= {{25, 89}, {75, 81}, {31, 78}, {80, 58}, {65, 87},
{23, 12}, {19, 65}, {92, 97}, {54, 10}, {55, 61}}

Using a pure function, I specify an ordering function that compares
the second element in two pairs.

In[2]:= Sort[data, #2[[2]] > #1[[2]]&]
Out[2]= {{54, 10}, {23, 12}, {80, 58}, {55, 61}, {19, 65},
{31, 78}, {75, 81}, {65, 87}, {25, 89}, {92, 97}}

The pairs are now sorted according to the value of the second element
in each pair.

Nancy Blachman

```

• Prev by Date: Re: Naming the Mathematica language
• Next by Date: MapAt complaint
• Previous by thread: Re: sort pairs
• Next by thread: re:sort pairs