Ordering

Ordering[list]

gives the positions in list at which each successive element of Sort[list] appears.

Ordering[list,n]

gives the positions in list at which the first n elements of Sort[list] appear.

Ordering[list,-n]

gives the positions of the last n elements of Sort[list].

Ordering[list,n,p]

gives positions in list of elements of Sort[list,p].

Details

  • In a numerical list, Ordering[list,n] gives the positions of the n smallest elements. Ordering[list,-n] gives the positions of the n largest elements.
  • If there are several smallest elements in list, Ordering[list,1] will give only the position of the one that appears first.
  • list[[Ordering[list]]] is the same as Sort[list].
  • Ordering[list,seq] is equivalent to Take[Ordering[list],seq].
  • Ordering[list,UpTo[n]] returns n positions, or as many as are available.
  • Ordering[list,All,p] gives the position at which all elements of list appear in Sort[list,p].
  • Ordering can be used on expressions with any head, not only List.

Examples

open allclose all

Basic Examples  (4)

Find the ordering that sorts a list:

Apply the ordering:

Find the positions of the 4 smallest elements in a list:

Find the position of the largest element:

Find the ordering of values in an Association:

Scope  (3)

Find positions of elements from the 4^(th) smallest to the largest:

Find positions of elements in Sort[list,Greater]:

Find the positions of the 6 smallest elements in a list, or as many as are available:

Generalizations & Extensions  (1)

Use expressions with any head:

Applications  (3)

Find a permutation that sorts a list:

Apply the permutation:

Find the inverse of a permutation:

Sort a list of lists with respect to a particular position:

The same as Sort, but Ordering keeps the original ordering when elements are the same:

Using Ordering this way is much faster for large sets of lists:

Properties & Relations  (2)

Find the position of the maximum element:

list[[Ordering[list]]] is equivalent to Sort[list]:

Introduced in 2000
 (4.1)
 |
Updated in 2014
 (10.0)
2015
 (10.3)