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/