Re: Greatest element in list
- To: mathgroup at smc.vnet.net
- Subject: [mg30491] Re: Greatest element in list
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Fri, 24 Aug 2001 04:05:51 -0400 (EDT)
- Organization: Universitaet Leipzig
- References: <9m27in$gqd$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi, without your data I can't reproduce the problem. But MaxPosition = Compile[{{lst, _Real, 1}}, Module[{max = First[lst], pos = 1, i = 2}, Scan[ If[# > max, max = #; pos = i++, i++] & , Rest[lst] ]; pos ] ] is atleast faster than Position[#, Max[#]] &[lst] In[]:=lst = Table[Random[], {1000000}]; In[]:=Timing[Position[#, Max[#]] &[lst]] Out[]={6.85 Second, {{602020}}} In[]:=Timing[MaxPosition[lst]] Out[]={4.42 Second, 602020} Because it scans the list only once. Regards Jens Oliver Friedrich wrote: > > Hi, > > what's the best way to get the position of the greatest number in list of > reals? I've tried > > Position[#,Max[#]]&list > > but surprisingly, it doesn't work all the time, sometimes it returns an > empty list. How is that, because a theorem says that a non empty set of real > numbers must have at least one biggest element. So Max[#] can't be empty. > > Any solutions ? > > Oliver Friedrich