quick sort
なんか以前も Haskell での quick sort について書いたような記憶があるけども、Python でもできたりするな。
def quicksort(xs): if len(xs) == 0: return [] x = xs[0] return quicksort([y for y in xs[1:] if y < x]) \ + [x] \ + quicksort([y for y in xs[1:] if y >= x])
itertools.islice 使ったほうが効率良いかな。
from itertools import islice def tail(xs): return islice(xs, 1, len(xs)) def quicksort(xs): if len(xs) == 0: return [] x = xs[0] return quicksort([y for y in tail(xs) if y < x]) \ + [x] \ + quicksort([y for y in tail(xs) if y >= x])
まぁ、多少効率よくてもどうよ、という効率の悪さだと思うけど。