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

```

• Prev by Date: Re: Greatest element in list
• Next by Date: RE: Greatest element in list
• Previous by thread: Re: Greatest element in list
• Next by thread: RE: Greatest element in list