The answer depends on what you mean by quickest. For most sorting
problems, it just doesnít matter how quick the sort is because it is
done infrequently or other operations take significantly more time
anyway. Even in cases in which sorting speed is of the essence, there is
no one answer. It depends on not only the size and nature of the data,
but also the likely order. No algorithm is best in all cases.
There are three sorting methods in this authorís toolbox that are all
very fast and that are useful in different situations. Those methods are
quick sort, merge sort, and radix sort.
The Quick Sort
The quick sort algorithm is of the divide and conquer type. That means
it works by reducing a sorting problem into several easier sorting
problems and solving each of them. A dividing value is chosen from the
input data, and the data is partitioned into three sets: elements that
belong before the dividing value, the value itself, and elements that
come after the dividing value. The partitioning is performed by
exchanging elements that are in the first set but belong in the third
with elements that are in the third set but belong in the first Elements
that are equal to the dividing element can be put in any of the three
setsthe algorithm will still work properly.
The Merge Sort
The merge sort is a divide and conquer sort as well. It works by
considering the data to be sorted as a sequence of already-sorted lists
(in the worst case, each list is one element long). Adjacent sorted
lists are merged into larger sorted lists until there is a single sorted
list containing all the elements. The merge sort is good at sorting
lists and other data structures that are not in arrays, and it can be
used to sort things that donít fit into memory. It also can be
implemented as a stable sort.
The Radix Sort
The radix sort takes a list of integers and puts each element on a
smaller list, depending on the value of its least significant byte. Then
the small lists are concatenated, and the process is repeated for each
more significant byte until the list is sorted. The radix sort is
simpler to implement on fixed-length data such as ints.