SkillStack
テクノロジ系7 / 80問

応用情報技術者試験 令和5年度 春期 午前 問7

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

選択肢を押すと答え合わせができます。

正解と解説を見る

【正解】ア

最初の分割では、配列全体の左端にある2を基準値とします。2より小さい値は1、2より大きい値は3、5、4です。各グループ内では元の順番を保つため、分割後は「1、2、3、5、4」となります。値1だけのグループは要素が一つなので、それ以上分割する必要はありません。次に、未確定のグループ「3、5、4」を分割します。このグループの左端にある3が基準値です。3より小さい値はなく、3より大きい値は元の順番のまま5、4となります。したがって、2回目の分割後も並びは「1、2、3、5、4」であり、アが正解です。

イの「1、2、5、4、3」は誤りです。基準値3は、小さい値のグループと大きい値のグループの間に置かれるので、5、4の後ろには置かれません。

ウの「2、3、1、4、5」は誤りです。最初の基準値2より小さい1は、2より前のグループに配置されなければなりません。

エの「2、3、4、5、1」は誤りです。1が基準値2より大きい側に残っており、最初の分割の条件を満たしていません。

【ポイント】 クイックソートでは、基準値を境に小さい値と大きい値へ分割し、各グループに同じ処理を繰り返します。 分割回数を数えるときは、要素が一つのグループは既に整列済みとして扱います。

出典:令和5年度 春期 応用情報技術者試験 午前 問7
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。

この回の80問を、アプリで通しで解く

  • 本番と同じ問題数・制限時間で通し演習(模試モード)
  • 間違えた問題は自動で「復習すべき問題」に回る
  • 解説で分からない点はAIに質問できる
SkillStackで無料で始める