平成30年度 秋期 基本情報技術者試験 午前 問6
テクノロジ/アルゴリズムクイックソートの処理方法を説明したものはどれか。
出典:平成30年度 秋期 基本情報技術者試験 午前 問6
- ア既に整列済みのデータ列の正しい位置に,データを追加する操作を繰り返していく方法である。
- イデータ中の最小値を求め,次にそれを除いた部分の中から最小値を求める。この操作を繰り返していく方法である。
- ウ適当な基準値を選び,それよりも小さな値のグループと大きな値のグループにデータを分割する。同様にして,グループの中で基準値を選び,それぞれのグループを分割する。この操作を繰り返していく方法である。
- エ隣り合ったデータの比較と入替えを繰り返すことによって,小さな値のデータを次第に端の方に移していく方法である。
正解:ウ
解説
クイックソートは,基準値(ピボット)を選んでデータ列をその値より小さいグループと大きいグループに分割し,各グループに対して同様の分割を再帰的に繰り返すことで整列するアルゴリズムです。選択肢アは挿入ソート,イは選択ソート,エはバブルソートの説明であり,いずれもクイックソートとは異なります。
選択肢ごとの解説
- ア誤り。既に整列済みの列の正しい位置にデータを追加していく方法は,挿入ソートの説明です。
- イ誤り。最小値を求めて順に確定させていく方法は,選択ソートの説明です。
- ウ正しい。基準値を選んでデータを2つのグループに分割し,各グループで同様の分割を繰り返す方法は,クイックソートの説明です。
- エ誤り。隣り合うデータの比較と入替えを繰り返す方法は,バブルソートの説明です。