SC情報処理安全確保支援士試験 午前Ⅰ

令和5年度春期 情報処理安全確保支援士 午前Ⅰ 問3

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

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

選択肢

  1. ア
    1、 2. 3. 5、 4
  2. イ
    1、. 2. 5、 4、 3
  3. ウ
    2、 31、 4、 5
  4. エ
    234.5.1
解き方のヒントを見る

午前I 問03:左端を基準にして、順番を崩さずグループ分けしよう

まず左端の 2 を基準にすると、2 より小さい `1` と、2 より大きい `3,5,4` に分かれるよ。このとき、元の並び順はそのまま保つのがポイント。次に右側の `3,5,4` でも左端の 3 を基準に分けると、全体は `2,3,1,4,5` の形として追えるよ。

この問題で問われていること

この問題のカギは、ただ分割することではなく、「左端を基準にする」「元の順序を保つ」という指定どおりに、並びの変化を落ち着いて追えるかどうかだよ。

Quick Sort Partition Trace

pivot=2 then pivot=3 with original relative order preserved in each group

2,3,5,4,1\n-> 1 | 2 | 3,5,4\n-> 2,3,1,4,5 (state after 2nd partition)

確認ポイント

  • 各グループ内では元の並びを保つ。
  • 毎回左端が基準値です。
  • 2 回目の分割直後の状態を問うている。
正解と解説を見る

正解

ア

出典

問題文と解答は IPA 公開の過去問題冊子・解答例を基にしています。

選択肢ア(正解)

これは正解だよ。クイックソートでは、まず左端の2を基準にして、2より小さい1を左、2より大きい3,5,4を右に分けるんだ。次に右側のグループは左端の3を基準にして、3と5,4に分かれる。荷物を『基準より小さい箱・基準・大きい箱』に順番に仕分ける感じで、2回目の分割後は 1,2,3,5,4 になるよ。

選択肢イ

これは不正解だよ。1,2 までは合っているけど、3を基準にした2回目の分割では、3は5,4より前に置かれる必要があるんだ。受付で『3番の人を窓口にして、その後ろに5番と4番が並ぶ』イメージだから、1,2,5,4,3 のように3が最後へ回るのはおかしいよ。

選択肢ウ

これは不正解だよ。左端の2を基準にした最初の分割で、2より小さい1は左側へ移動するはずだよ。2,3,4,5,1 のように1が最後にいるのは、仕分け箱に入れるべき荷物を入れ忘れたようなもの。2回目どころか1回目の分割後の形としても合っていないよ。

選択肢エ

これは不正解だよ。1回目の分割だけでも、左端の2を基準にすると、2より小さい1は2の左側に来ないといけないんだ。なのに 2,3,1,4,5 では1が後ろに残っている。泥棒チェックで『2より小さい人はこちら』と言われた1番さんが、まだ列の奥にいるような状態だから違うよ。

出典:独立行政法人 情報処理推進機構(IPA)令和5年度春期 情報処理安全確保支援士試験 午前Ⅰ 問3(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針