MathGroup Archive 2004

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

Search the Archive

Re: Sorting question

  • To: mathgroup at
  • Subject: [mg52769] Re: [mg52758] Sorting question
  • From: Andrzej Kozlowski <akoz at>
  • Date: Mon, 13 Dec 2004 04:22:06 -0500 (EST)
  • References: <>
  • Sender: owner-wri-mathgroup at

On 11 Dec 2004, at 19:23, Nimrod wrote:

>  A simple sorting question that has me stumped as to how to do it both
> quickly and elegantly.
> I have a list of data pairs of the form (distance, time).  I want to
> sort on the distance element and then remove all pairs where the time
> element is out of order with the distance element.  For example
> ((1,1),(2,3),(3,2),(4,4)) --> ((1,1),(4,4)).  The actual lists are
> much longer.
> Thanks in advnace,
> Nimrod.
I am not quite sure I understand you correctly, but here is one 
possible way. (If I understand you correctly it does not matter whether 
you sort on space or time, the final result should be the same).

F[ls_] := With[{w =
   Transpose[ls]}, Extract[Sort[ls], Position[Ordering[
     First[w]] - Ordering[Last[w]], 0]]]

For example if the list is:

ls={{0,3},{0.8,20}, {0.3,5},{0.9,17},{10,100}};



{{0, 3}, {0.3, 5}, {10, 100}}

This can many pretty large lists:



{0.1600000000000037*Second, 100}

Andrzej Kozlowski
Chiba, Japan

  • Prev by Date: Re: Q:Changing Mathematica default terms arrangement
  • Next by Date: Re: multiple outputs from a function
  • Previous by thread: Re: Sorting question
  • Next by thread: Re: Sorting question