Search in: Word
Vietnamese keyboard: Off
Virtual keyboard: Show
Computing (FOLDOC) dictionary
Jump to user comments
A sorting algorithm with O(n log n) average time
One element, x of the list to be sorted is chosen and the
other elements are split into those elements less than x and
those greater than or equal to x. These two lists are then
sorted recursively using the same algorithm until there is
only one element in each list, at which point the sublists are
recursively recombined in order yielding the sorted list.
This can be written in Haskell:
qsort :: Ord a =@# [a] -@# [a]
qsort [] = []
qsort (x:xs) = qsort [ u | u#@-xs, u#@x ] ++
[ x ] ++
qsort [ u | u-xs, u=x ]