ソート / Quick Sort(クイックソート)

基準値で分けて、
左右を整列する。

1 つ基準値を決めて、それより小さいグループと大きいグループに分けながら進める方法です。基準値の選び方に偏りが出ると遅くなります。

平均 O(n log n)その場で並べ替えやすい基準値の選び方が重要

目次

このページの目次

このページでわかること

先に知っておくポイント

1. 基準値がどれか
2. 左右にどう分かれるか
3. 最悪ケースがどんなときか

概要

概要

基準値の決め方

基準値はどう決めるのか

基準値は、配列の中から『これを目印に左右へ分けよう』と決める値です。

正しい基準値が 1 つだけあるわけではありません。左端、右端、真ん中あたりなど、どれを選んでも動きます。

ここでは、動きを追いやすいように『右端の値を基準値にする』形で見せます。

ただし、いつも端の値ばかり選ぶと、分かれ方が偏って遅くなることがあります。

よくある決め方

左端、右端、真ん中あたりから選ぶ

このページの見せ方

右端を基準値にして動きを確認する

大事な点

選び方が偏ると遅くなりやすい

考え方

擬似コード

基準値を 1 つ決める
基準値より小さいものを左へ集める
基準値より大きいものを右へ集める
左右を同じように整列する

要点

要点まとめ

最良時計算量

O(n log n)

平均時計算量

O(n log n)

最悪時計算量

O(n²)

安定ソートか

いいえ

補足

向いている場面と注意点

平均で速い理由

左右がある程度バランスよく分かれると、段数が log n 程度に収まるからです。

最悪

毎回かなり偏って分かれると二次時間になります。

授業の焦点

基準値を決めて左右へ分ける動きが理解の中心です。

動きで確認

動きを見てたしかめる

ここでは「基準値がどれか」を見ながら、上で読んだ内容を動きと結びつけます。

注目重要候補確定

次に見る

次に見るページ

比較すると違いがわかりやすいページを先に置いています。