Можно ли выполнить быструю сортировку списка только за один проход?

Я изучаю haskell, и я вижу определение функции:

quickSort (x : xs) = (quickSort less) ++ (x : equal) ++ (quickSort more)
                 where less = filter (< x) xs
                       equal = filter (== x) xs
                       more = filter (> x) xs

Можно ли написать это с одним обходом списка, вместо 3?

6
задан Will Ness 19 August 2012 в 11:20
поделиться