なにを言ってるのかわからねーと思うが,俺にもわからねえ
とにかく,見てくれ
こいつをどう思う?
def qsort(L): pivot = len(L) // 2 # いっこになってたらおしまい if not pivot: return L # L[pivot]より小さい値はsmallerに,大きい値はbiggerに smaller = [x for x in L if x < L[pivot]] bigger = [x for x in L if x > L[pivot]] smaller = qsort(smaller) bigger = qsort(bigger) # 合体 L = smaller + L[pivot:pivot + 1] + bigger return L
実行結果
>>> python3.1 qsort.py before = [8, 4, 3, 7, 6, 5, 2, 1] result = [1, 2, 3, 4, 5, 6, 7, 8]
「よーしパパ,リスト内包表記使っちゃうぞー」とかPythonのリッチな機能を使ってたらどうもチートくさくなった
けど,リスト内包表記キモくてとてもかわいい
ういやつ
結構スッキリ書けたと思うけど,合体んとこの代入文がエレガントじゃないのでなんとかしたい
スライシングじゃなくて,普通にリストにすればよかったかな?
というか,これはクイックソートと呼んでええんやろうか?
追記
配列に重複がある場合,抜け落ちることに気づいた