彼らが言うように、「真のクイックソートはその場でソートします」 . したがって、quicksortの標準的な短い Haskell コードは、
quicksort :: Ord a => [a] -> [a]
quicksort [] = []
quicksort (p:xs) = (quicksort lesser) ++ [p] ++ (quicksort greater)
where
lesser = filter (< p) xs
greater = filter (>= p) xs
結局のところ、どのアルゴリズム/計算プロセスを記述しているのでしょうか?
それは間違いなくTony Hoare が考案したものではなく、その最も決定的な機能であるインプレース パーティショニング アルゴリズムが欠けています。
(答えはよく知られているかもしれませんが、まだSOではありません)。
訂正: この質問は実際には重複しています: 結局のところ、答えはSO で知られています: cf. 疑似クイックソート時間の複雑さ。