Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2004
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2004

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

Search the Archive

Re: Sorting question

  • To: mathgroup at smc.vnet.net
  • Subject: [mg52786] Re: Sorting question
  • From: Bill Rowe <readnewsciv at earthlink.net>
  • Date: Mon, 13 Dec 2004 04:22:41 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

On 12/11/04 at 5:23 AM, jdedguard-agent at yahoo.co.uk (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.

I would code this as

Select[data[[Ordering[data[[All,1]]]]], OrderedQ@#&]

where data is the list of pairs to be sorted.

Note, this coding matches your text, i.e., all pairs where distance (the first element) is ordered with the second element (time) are selected. That is it will retain {2,3} since OrderedQ@{2,3} returns true.

Your example shows pairs with both elements being equal as the only ones retained. This could be coded as:

Select[data[[Ordering[data[[All,1]]]]], Equal@@#&]
--
To reply via email subtract one hundred and four


  • Prev by Date: Re: power spectrum
  • Next by Date: Re: Newbie Question -- Plot3d::plnc
  • Previous by thread: Re: Sorting question
  • Next by thread: Memory Problem