令和5年度春期午前Ⅰ 問3についての考察と解法

テーマ:クイックソートによる分割

  

正解はこちら

解答:ア

 問題一覧へ

[基礎知識・用語のまとめ]

クイックソート・・・対象となるデータ列を基準に従って分割し、分割されたデータ列に対して同様の処理を繰り返してソートを行う方法です。分割統治法によるアルゴリズムの一つで、グループ分けや基準値の選び方にはいくつかの方法があり、通常の場合、プログラムでは再起呼び出しが用いられます。

[解法]

配列に格納されたデータ列を照準に並び替えるために、問題文にある次の三つの条件に従って、分割を進めます。

・分割は基準値より小さい値と大きい値のグループに分ける。

・基準値は分割のたびにグループ内の配列の左端の値とする。

・グループ内の配列の値の順番は元の配列と同じとする。

(初めの配列)    3  5  4  1  :基準となる値

(1回目の分割終了) 1|2|3 5 4 

 基準値2より小さい値(1)と大きい値(3,5,4)のグループに分けます。

(2回目の分割開始) 1|2| 5 4

1、2は分割を終了し、(3,5,4)のグループに対して基準値を3として分割を行います。

(2回目の分割終了) 1|2|3|5 4

基準値3より小さい値はなく、大きい値(5, 4)のグループだけを分けます。

 

したがって、(2回目の分割終了)の状態のデータ列は、1、2、3、5、4となり、選択肢「ア」が正解となります。

[参考]

最後までやった場合は以下のようになる、、、らしい。

(3回目の分割開始) 1|2|3| 4

1、2、3は分割を終了し、(5、4)のグループに対して、基準値を5として分割を行います。

(3回目の分割終了) 1|2|3|4|5

基準値5より小さい値(4)を分けると全てのデータに対する分割が終了し、昇順に並べ替えられたことがわかります。

利用させていただきました素材へのリンク

うさちゃこちゃんねる様 https://www.youtube.com/channel/UCQcDdg4W6r5OfcB1JTcpABw  

ここまで読んでくれてありがとう!!
感謝!
感謝!

 問題一覧へ

コメント