Sorting refers to ordering data in an increasing or decreasing manner according to some linear relationship among the data items.
#
ordering: arranging items in a sequence ordered by some criterion;
#
categorizing
Categorization is the ability and activity of recognizing shared features or similarities between the elements of the experience of the world (such as objects, events, or ideas), organizing and classifying experience by associating them to a ...
: grouping items with similar properties.
Ordering items is the combination of categorizing them based on equivalent order, and ordering the categories themselves.
Sorting information or data
In , arranging in an ordered sequence is called "sorting". Sorting is a common operation in many applications, and efficient
algorithms
In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for performing ...
to perform it have been developed.
The most common uses of sorted sequences are:
* making
lookup or search efficient;
* making
merging of sequences efficient.
* enable
processing of data in a defined order.
The opposite of sorting, rearranging a sequence of items in a random or meaningless order, is called
shuffling
Shuffling is a procedure used to randomize a deck of playing cards to provide an element of chance in card games. Shuffling is often followed by a cut, to help ensure that the shuffler has not manipulated the outcome.
__TOC__
Techniques
Overh ...
.
For sorting, either a weak order, "should not come after", can be specified, or a
strict weak order, "should come before" (specifying one defines also the other, the two are the complement of the inverse of each other, see
operations on binary relations). For the sorting to be unique, these two are restricted to a
total order
In mathematics, a total or linear order is a partial order in which any two elements are comparable. That is, a total order is a binary relation \leq on some set X, which satisfies the following for all a, b and c in X:
# a \leq a ( reflexiv ...
and a strict total order, respectively.
Sorting
n-tuple
In mathematics, a tuple is a finite ordered list (sequence) of elements. An -tuple is a sequence (or ordered list) of elements, where is a non-negative integer. There is only one 0-tuple, referred to as ''the empty tuple''. An -tuple is defi ...
s (depending on context also called e.g.
record
A record, recording or records may refer to:
An item or collection of data Computing
* Record (computer science), a data structure
** Record, or row (database), a set of fields in a database related to one entity
** Boot sector or boot record, ...
s consisting of fields) can be done based on one or more of its components. More generally objects can be sorted based on a property. Such a component or property is called a sort key.
For example, the items are books, the sort key is the title, subject or author, and the order is alphabetical.
A new
sort key
Collation is the assembly of written information into a standard order. Many systems of collation are based on numerical order or alphabetical order, or extensions and combinations thereof. Collation is a fundamental element of most office filin ...
can be created from two or more sort keys by
lexicographical order
In mathematics, the lexicographic or lexicographical order (also known as lexical order, or dictionary order) is a generalization of the alphabetical order of the dictionaries to sequences of ordered symbols or, more generally, of elements of ...
. The first is then called the primary sort key, the second the secondary sort key, etc.
For example, addresses could be sorted using the city as primary sort key, and the street as secondary sort key.
If the sort key values are
totally ordered
In mathematics, a total or linear order is a partial order in which any two elements are comparable. That is, a total order is a binary relation \leq on some set X, which satisfies the following for all a, b and c in X:
# a \leq a ( reflexiv ...
, the sort key defines a
weak order of the items: items with the same sort key are equivalent with respect to sorting. See also
stable sorting. If different items have different sort key values then this defines a unique order of the items.

A standard order is often called ''ascending'' (corresponding to the fact that the standard order of numbers is ascending, i.e. A to Z, 0 to 9), the reverse order ''descending'' (Z to A, 9 to 0). For dates and times, ''ascending'' means that earlier values precede later ones e.g. 1/1/2000 will sort ahead of 1/1/2001.
Common sorting algorithms
*
Bubble/
Shell sort
Shellsort, also known as Shell sort or Shell's method, is an in-place comparison sort. It can be seen as either a generalization of sorting by exchange (bubble sort) or sorting by insertion (insertion sort). The method starts by sorting pairs of ...
: Exchange two adjacent elements if they are out of order. Repeat until array is sorted.
*
Insertion sort
Insertion sort is a simple sorting algorithm that builds the final sorted array (or list) one item at a time by comparisons. It is much less efficient on large lists than more advanced algorithms such as quicksort, heapsort, or merge sort. Howe ...
: Scan successive elements for an out-of-order item, then insert the item in the proper place.
*
Selection sort
In computer science, selection sort is an in-place comparison sorting algorithm. It has an O(''n''2) time complexity, which makes it inefficient on large lists, and generally performs worse than the similar insertion sort. Selection sort is n ...
: Find the smallest (or biggest) element in the array, and put it in the proper place. Swap it with the value in the first position. Repeat until array is sorted.
*
Quick sort: Partition the array into two segments. In the first segment, all elements are less than or equal to the pivot value. In the second segment, all elements are greater than or equal to the pivot value. Finally, sort the two segments recursively.
*
Merge sort
In computer science, merge sort (also commonly spelled as mergesort) is an efficient, general-purpose, and comparison-based sorting algorithm. Most implementations produce a stable sort, which means that the order of equal elements is the same ...
: Divide the list of elements in two parts, sort the two parts individually and then merge it.
Physical sorting processes

Various sorting tasks are essential in industrial processes. For example, during the extraction of
gold
Gold is a chemical element with the symbol Au (from la, aurum) and atomic number 79. This makes it one of the higher atomic number elements that occur naturally. It is a bright, slightly orange-yellow, dense, soft, malleable, and ductile ...
from ore, a device called a
shaker table uses
gravity
In physics, gravity () is a fundamental interaction which causes mutual attraction between all things with mass or energy. Gravity is, by far, the weakest of the four fundamental interactions, approximately 1038 times weaker than the str ...
,
vibration
Vibration is a mechanical phenomenon whereby oscillations occur about an equilibrium point. The word comes from Latin ''vibrationem'' ("shaking, brandishing"). The oscillations may be periodic, such as the motion of a pendulum—or random, suc ...
, and flow to
separate gold from lighter materials in the ore (sorting by size and weight). Sorting is also a naturally occurring process that results in the concentration of
ore or
sediment
Sediment is a naturally occurring material that is broken down by processes of weathering and erosion, and is subsequently transported by the action of wind, water, or ice or by the force of gravity acting on the particles. For example, sa ...
. Sorting results from the application of some criterion or differential stressors to a mass to separate it into its components based on some variable quality. Materials that are different, but only slightly so, such as the isotopes of uranium, are very difficult to separate.
Optical sorting is an automated process of sorting solid products using cameras and/or lasers and has widespread use in the food industry.
Sensor-based sorting
Sensor-based sorting, is an umbrella term for all applications in which particles are detected using a sensor technique and rejected by an amplified mechanical, hydraulic or pneumatic process.
The technique is generally applied in mining, recy ...
is used in mineral processing.
See also
*
Help:Sorting in Wikipedia tables. For sorting of categories, see
Wikipedia:Categorization#Sort keys and for sorting of article sections, see
WP:ORDER
*
Collation
Collation is the assembly of written information into a standard order. Many systems of collation are based on numerical order or alphabetical order, or extensions and combinations thereof. Collation is a fundamental element of most office fil ...
*
IBM mainframe sort/merge
*
Unicode collation algorithm
The Unicode collation algorithm (UCA) is an algorithm defined in Unicode Technical Report #10, which is a customizable method to produce binary keys from strings representing text in any writing system and language that can be represented with Uni ...
*
Knolling
*
5S (methodology)
5S is a workplace organization method that uses a list of five Japanese language, Japanese words: , , , , and . These have been translated as "sort", "set in order", "shine", "standardize", and "sustain". The list describes how to organize a wor ...
References
External links
Demonstration of Sorting Algorithms(includes bubble and quicksort)
Animated videoexplaining bubble sort and quick sort and compares their performance.
{{commons category
Sorting algorithms
Data processing