stable sorting algorithm


A stable sorting algorithm is any sorting algorithm that preserves the relative ordering of items with equal values. For instance, consider a list of ordered pairsMathworldPlanetmath

L:={(A,3),(B,5),(C,2),(D,5),(E,4)}.

If a stable sorting algorithm sorts L on the second value in each pair using the relationMathworldPlanetmath, then the result is guaranteed to be {(C,2),(A,3),(E,4),(B,5),(D,5)}. However, if an algorithmMathworldPlanetmath is not stable, then it is possible that (D,5) may come before (B,5) in the sorted output.

Some examples of stable sorting algorithms are bubblesort and mergesort (although the stability of mergesort is dependent upon how it is implemented). Some examples of unstable sorting algorithms are heapsortMathworldPlanetmath and quicksortMathworldPlanetmath (quicksort could be made stable, but then it wouldn’t be quick any more). Stability is a useful property when the total ordering relation is dependent upon initial position. Using a stable sorting algorithm means that sorting by ascending position for equal keys is built-in, and need not be implemented explicitly in the comparison operator.

Title stable sorting algorithm
Canonical name StableSortingAlgorithm
Date of creation 2013-03-22 12:31:04
Last modified on 2013-03-22 12:31:04
Owner mathcam (2727)
Last modified by mathcam (2727)
Numerical id 9
Author mathcam (2727)
Entry type Definition
Classification msc 68P10
Synonym stable algorithm
Related topic Bubblesort
Defines unstable sorting algorithm