quicksort

from The Free On-line Dictionary of Computing (8 July 2008)
Quicksort

   A sorting {algorithm} with O(n log n) average time
   {complexity}.

   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 {recursive}ly 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 ]

   [Mark Jones, Gofer prelude.]
    

[email protected]