We can use Max[exampleList] or Min[exampleList] to find the maxima and minima of exampleList, however, is there a similar standalone function that returns something like {position in array, maximum value in the array} or {position in array, minimum value in the array}, i.e. both the position and value of the maximum or minimum element in exampleList? It seems awkward to have to write Position[exampleList,Max[exampleList]] or Position[exampleList,Min[exampleList]]?


1 Answer 1


or shorter (per your comment...)


will do the trick, obviously change Max to Min for minimum...

Or, as suggested in comments


Will give positions of minimum and maximum, respectively.

Computation times

order[n_] := Block[{},
  list = RandomReal[1, n];
  t1 = (Position[list, Min@list]; // RepeatedTiming // First);
  t2 = (Ordering[list, 1]; // RepeatedTiming // First);
  {{n, t1}, {n, t2}}]
tab = ParallelTable[order[Floor[1.1^n]], {n, 1, 100, 1}];
ListLogLogPlot[{tab[[All, 1]], tab[[All, 2]]}]

enter image description here

Ordering is much faster.

  • $\begingroup$ Why can't we just write Position[exampleList,Max[exampleList]]? Sorry, I wrote that just as you were posting this answer. $\endgroup$
    – Geof
    Commented Apr 9, 2014 at 8:56
  • $\begingroup$ @Geof: Well, for one thing, that's incomplete. The first argument to Position is the target list, and Max does not return a list... $\endgroup$
    – ciao
    Commented Apr 9, 2014 at 8:57
  • $\begingroup$ OK, I like the use of Ordering here, that's what I was after! $\endgroup$
    – Geof
    Commented Apr 9, 2014 at 8:58
  • $\begingroup$ Sorry, that was a typo, I fixed the comment. I meant, why can't "(#==Max[list]&)" just be "Max[exampleList]"? $\endgroup$
    – Geof
    Commented Apr 9, 2014 at 8:58
  • $\begingroup$ @geof: you can, I'm just in the habit of having complex functions there... $\endgroup$
    – ciao
    Commented Apr 9, 2014 at 8:59

Not the answer you're looking for? Browse other questions tagged or ask your own question.