Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
1999
*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 1999

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

Search the Archive

Re(2): easiest way to sort a list?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg18359] Re(2): easiest way to sort a list?
  • From: Andrzej Kozlowski <andrzej at tuins.ac.jp>
  • Date: Wed, 30 Jun 1999 14:13:26 -0400
  • Sender: owner-wri-mathgroup at wolfram.com

Actually I am using version 3.01  on a Mac PowerBook G3 (233 mghz). This
could be machine dependent. What platform did you use for your tests?

(Wri still have not sent me my Mathematica version 4.0 so I can't check this myself.)

Andrzej


On Mon, Jun 28, 1999, Colin Rose <colin at tri.org.au> wrote:

>  UnsortedUnion[lis_]:=
>    Part[lis, Sort[Map[Position[lis, #][[1]] &, Union[lis]] // Flatten]]
>
>  OrderedUnion[li_]:=Block[{i},
>    i[n_]:=(i[n]=Sequence[];n);
>    i /@ li]
>
>
>
>Andrzej Kozlowski wrote:
>
>> Although in your example UnsortedUnion comes just ahead of OrderedUnion,
>> at the other extreme we get:
>
>  >  list1=Range[1000];
>
>  >  OrderedUnion[list1];//Timing
>  >  {0.15 Second, Null}
>
>  >  UnsortedUnion[list1];//Timing
>  >  {1.91667 Second, Null}
>
>
>Actually, in v4, for this example, UnsortedUnion is still
>faster than OrderedUnion:
>
>
>In[4]:=    OrderedUnion[list1]; // Timing
>Out[4]=    {0.116667 Second, Null}
>
>In[5]:=    UnsortedUnion[list1]; // Timing
>Out[5]=    {0.0666667 Second, Null}
>
>
>Perhaps you are using an old version of Mathematica, in which
>Sort is much slower. Of course, the essence of your point is
>correct. That is, there are two types of large problems:
>
>* When the number of distinct elements is large:
>     - here OrderedUnion is MUCH faster.
>
>* When the list is large, but the number of distinct elements is small.
>     - here OrderedUnion is not faster.
>
>As an aside, in both cases, OrderedUnion may have memory problems.
>For instance, a list of length 500000 will 'quit' most people's kernels.
>
>
>Cheers
>
>Colin
>
>Colin Rose
>tr(I)    -  Theoretical Research Institute
>__________________________________________
>colin at tri.org.au    http://www.tri.org.au/
>
>
>
>
>
>
>
>


Andrzej Kozlowski
Toyama International University
JAPAN
http://sigma.tuins.ac.jp/
http://eri2.tuins.ac.jp/



  • Prev by Date: best line through a set of 3D points
  • Next by Date: Re: Plot vs FindMinimum
  • Previous by thread: best line through a set of 3D points
  • Next by thread: Re(2): easiest way to sort a list?