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]]?


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
    Apr 9 '14 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
    Apr 9 '14 at 8:57
  • $\begingroup$ OK, I like the use of Ordering here, that's what I was after! $\endgroup$
    – Geof
    Apr 9 '14 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
    Apr 9 '14 at 8:58
  • $\begingroup$ @geof: you can, I'm just in the habit of having complex functions there... $\endgroup$
    – ciao
    Apr 9 '14 at 8:59

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