haskell: naive quicksort classic program (+5 tests, 395/395)
This commit is contained in:
12
lib/haskell/tests/programs/quicksort.hs
Normal file
12
lib/haskell/tests/programs/quicksort.hs
Normal file
@@ -0,0 +1,12 @@
|
||||
-- quicksort.hs — naive functional quicksort.
|
||||
--
|
||||
-- Partition by pivot, recurse on each half, concatenate.
|
||||
-- Uses right sections `(< x)` and `(>= x)` with filter.
|
||||
|
||||
qsort [] = []
|
||||
qsort (x:xs) = qsort smaller ++ [x] ++ qsort larger
|
||||
where
|
||||
smaller = filter (< x) xs
|
||||
larger = filter (>= x) xs
|
||||
|
||||
result = qsort [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
|
||||
Reference in New Issue
Block a user