この概念が出た関連問題

この試験の対策ガイド

情報処理安全確保支援士試験 対策ガイド

合格率・勉強法・参考書の選び方をまとめています

見る →
答えと解説を見る(先に解くのがおすすめ)

正解は ア

解説

クイックソートの動作を初期配列 [2, 3, 5, 4, 1] でトレースします。【1回目の分割】基準値 = 左端 = 2。2 より小さい値 = [1]、2 以上の値 = [3, 5, 4]。「基準値より小さい値のグループ・基準値・大きい値のグループ」の順に並べると [1, 2, 3, 5, 4] になります。【2回目の分割】今度は大きい値のグループ [3, 5, 4] に対して分割を行います。基準値 = 左端 = 3。3 より小さい値 = なし、3 以上の値 = [5, 4]。グループ内の元の順番を維持すると [3, 5, 4] のまま(3 が確定位置に)。全体では [1, 2, 3, 5, 4] となります。これが選択肢 a です。

なぜ他の選択肢は違うのか

選択肢 イ
1, 2, 5, 4, 3 は [3, 5, 4] グループの分割後に 3 が末尾に移動した形ですが、基準値は左端(3)であり、3 より大きい [5, 4] が右に残るため、3 が末尾になることはありません。
選択肢 ウ
2, 3, 1, 4, 5 は 1 回目の分割で基準値 2 の左右が正しく分割されていません。正しくは 1 が 2 の左に来ます。
選択肢 エ
2, 3, 4, 5, 1 は [3, 5, 4] グループに対する 2 回目の分割が誤っています。1 が右端に残る形は、1 回目の分割の基準値 2 の処理が反映されていません。

解くときのポイント

クイックソートのトレースは「基準値(pivot)= グループの左端」「元の順番を維持してグループ分け」の 2 点を守ること。1 回目と 2 回目の分割対象グループを明確に区別して順に追う。試験では 2〜3 回分割した状態を問う出題が多い。