2023年 春期 応用情報技術者 午前 問7

配列に格納されたデータ2, 3, 5, 4, 1に対して、クイックソートを用いて昇順に並び替える。 2回目の分割が終わった状態はどれか。 ここで、部活は基準値より小さい値と大きい値のグループに分けるものとする。 また、分割のたびに基準値はグループ内の配列の左端の値とし、グループ内の配列の値の順番は元の配列と同じとする。

 ア  1, 2, 3, 5, 4
 イ  1, 2, 5, 4, 3
 ウ  2, 3, 1, 4, 5
 エ  2, 3, 4, 5, 1


答え ア


解説
2, 3, 5, 4, 1に対して、クイックソートを用いて昇順に並び替えるに、まず基準値(ピボット)として左端の2として、基準値より小さい値と、大きい値に分割すると
 1と3, 5, 4
なので配列は1, 2, 3, 5, 4になる。
左側のグループは要素の数が1個で整列済みなので、右側のグループ3, 5, 4に対して処理を行うと、左端の3を基準として基準値より小さい値と、大きい値に分割するが、全て基準値より大きいので、入れ替えは行われず配列は
 1, 2, 3, 5, 4
(ア)のままである。


キーワード
・整列方法

キーワードの解説
  • 整列方法(ソート)
    データの並び替えのことで様々な方法がある。
    • クイックソート
      ソートするデータから、適当な数を選択し、データをその数より大きいほうと小さいほうに分け、分けたデータに対し、この操作を繰り返す。
    • シェルソート
      適当に間隔を開けたデータを取り出し並び替えを行い、間隔を小さくしながらこの操作を繰り返す。
    • バブルソート
      n個のデータに対して、データの1番目と2番目を比較し順番が逆なら入れ替え、次に2番目と3番目で比較し、…、n-1番目とn番目で比較を行う。(n番目のデータの整列)
      その次に、1番目と2番目、2番目と3番目、…、n-2番目とn-1番目。(n-1番目のデータの整列)
      その次に、1番目と2番目、2番目と3番目、…、n-3番目とn-2番目。(n-2番目のデータの整列)
      この処理を繰り返し行い整列する。
    • ヒープソート
      未整列のデータから要素を1個づつ取り出し、ヒープ構造を作りながらデータのソートを行う。
    • マージソート
      データ列を2分割し、2分割したデータ列に対しソートを行い、分割したデータ列を合わせて(マージして)ソートを行う。
    なお、どのソートを使用するかは、ソートを行うデータの構造によっても変わってきます。

もっと、「クイックソート」について調べてみよう。

戻る 一覧へ 次へ