クイックソート: 最強の並び替えを攻略せよ
クイックソートは、基準になる値を1つ選び、それより小さいグループと大きいグループに分けながら並び替える方法です。
バブルソートのように1つずつ隣を比べるのではなく、先にグループ分けしてから並べるので、たくさんの数字を並べるときに強い方法です。
考え方
- 基準になる数字を1つ選ぶ
- 基準より小さい数字を左のグループへ集める
- 基準より大きい数字を右のグループへ集める
- 左右のグループでも同じことをくり返す
図で見る
コピペ用コード
def quick_sort(numbers):
if len(numbers) <= 1:
return numbers
pivot = numbers[0]
smaller = []
bigger = []
for number in numbers[1:]:
if number < pivot:
smaller.append(number)
else:
bigger.append(number)
return quick_sort(smaller) + [pivot] + quick_sort(bigger)
print(quick_sort([5, 3, 8, 1, 4]))