Natural sort order

From Wikipedia, the free encyclopedia

In computing, natural sort order (or natural sorting) is the ordering of strings in alphabetical order, except that multi-digit numbers are treated atomically, i.e., as if they were a single character. Natural sort order has been promoted as being more human-friendly ("natural") than machine-oriented, pure alphabetical sort order.[1]

For example, in alphabetical sorting, "z11" would be sorted before "z2" because the "1" in the first string is sorted as smaller than "2", while in natural sorting "z2" is sorted before "z11" because "2" is treated as smaller than "11".

Alphabetical sorting:

  1. z11
  2. z2

Natural sorting:

  1. z2
  2. z11

Functionality to sort by natural sort order is now widely available in software libraries for many programming languages.[2][3][4][5][6][7] During the 1996 MacHack conference, the Natural Order Mac OS System Extension was conceived and implemented overnight on-site as an entry for the Best Hack contest.[8][9] Dave Koelle wrote the Alphanum Algorithm in 1997[10] and Martin Pool published Natural Order String Comparison in 2000.[11]


  1. ^ "Sorting for Humans : Natural Sort Order". 12 December 2007.
  2. ^ "PHP: natsort - Manual".
  3. ^ "Sort::Naturally -".
  4. ^ Morton, Seth M. (23 December 2021). "natsort: Simple yet flexible natural sorting in Python" – via PyPI.
  5. ^ "Customizable Natural-Order Sort - File Exchange - MATLAB Central".
  6. ^ Kornblith, Simon (25 December 2021). "NaturalSort: Natural Sort Order in Julia".
  7. ^ Pažourek, Tomáš (1 April 2022). "NaturalSort.Extension: Support for natural sorting in .NET/C#".
  8. ^ "Natural Order Numerical Sorting".
  9. ^ "TidBITS: The Natural Order of Things". 3 February 1997.
  10. ^ "Dave Koelle's Alphanum Algorithm".
  11. ^ "Martin Pool's Natural Order String Comparison".