Re: Does Union[] reliably sort?
- To: mathgroup at smc.vnet.net
- Subject: [mg123679] Re: Does Union[] reliably sort?
- From: David Bailey <dave at removedbailey.co.uk>
- Date: Thu, 15 Dec 2011 04:55:15 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <jca06e$a35$1@smc.vnet.net>
On 14/12/2011 11:10, Michael Stern wrote:
> I have noticed that if combine two lists of date/data objects using
> Union[], the result is sorted by date.
>
> For example
>
> In[]:= mins={{{2001, 1, 31}, 0.993268}, {{2002, 3, 31}, 1.01395},
> {{2003, 6, 30},
> 1.08647}, {{2005, 11, 30}, 1.14752}, {{2006, 9, 30},
> 1.18938}, {{2007, 2, 28}, 1.19658}, {{2008, 1, 31},
> 1.20432}, {{2011, 1, 31}, 1.37501}};
> In[]:= maxs={{{2000, 10, 31}, 1.01816}, {{2001, 12, 31}, 1.02714},
> {{2004, 2, 29},
> 1.12702}, {{2005, 3, 31}, 1.16986}, {{2010, 10, 31}, 1.39026}};
>
> In[]:= Union[maxs, mins]
>
> Out[]= {{{2000, 10, 31}, 1.01816}, {{2001, 1, 31},
> 0.993268}, {{2001, 12, 31}, 1.02714}, {{2002, 3, 31},
> 1.01395}, {{2003, 6, 30}, 1.08647}, {{2004, 2, 29},
> 1.12702}, {{2005, 3, 31}, 1.16986}, {{2005, 11, 30},
> 1.14752}, {{2006, 9, 30}, 1.18938}, {{2007, 2, 28},
> 1.19658}, {{2008, 1, 31}, 1.20432}, {{2010, 10, 31},
> 1.39026}, {{2011, 1, 31}, 1.37501}}
>
> Is this reliable behavior? Is there any case in which Union would /not/
> return results that have been properly sorted by date?
>
> Thank you,
>
> -Michael Stern
Sorting is part of the operation, and you can rely on the result being
sorted.
Mathematica obviously uses the most efficient way to perform the Union
operation, which is to sort the entire set of elements, and then perform
a scan through the elements, discarding adjacent duplicates.
David Bailey
http://www.dbaileyconsultancy.co.uk
- Follow-Ups:
- Re: reliably sort?
- From: DrMajorBob <btreat1@austin.rr.com>
- Re: reliably sort?
- From: DrMajorBob <btreat1@austin.rr.com>
- Re: reliably sort?
- From: Ulrich Arndt <ulrich.arndt@data2knowledge.de>
- Re: reliably sort?