平成27年春期午後問8

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
まもさん  
(No.1)
https://www.fe-siken.com/kakomon/27_haru/pm08.html

解説を見ると以下のようになっていますが、プログラムでの不等号は、< と >なので、大きいもしくは小さい値となると思うのですが、これは問題文が違うのでしょうか?

10~12行目
x[i] が Pivot 以上になるまで i を進めます。
13~15行目
x[j] が Pivot 以下になるまで j を戻します。

問題のプログラムでは、x[3]である、6と比べた場合、6は含まれないので、結果が合わないと思います。
なにか解釈が違うのでしょうか?
2021.04.24 11:10
関数従属さん 
FE ゴールドマイスター
(No.2)
10~12行目でいうと
ループを繰り返す条件が x[i] < Pivot であり
逆にループを抜ける条件が x[i] >= Pivot となる為
それを日本語にしたものが

>10~12行目
>x[i] が Pivot 以上になるまで i を進めます。

で記載されているものになります。
13~15行目も同様です。

その後に記載されている

>配列xの要素は[3,5,6,4,7,2,1]で、
>k=3なので、1回目の選択処理では Pivot の値が x[3]=6 になります。
>1. iが1から3まで進み、jは7のままです。

の「iが1から3まで進み」の部分は

ループ1回目  x[1] < 6 であり、iに1加算、iは2になり次のループ判定へ
ループ2回目  x[2] < 6 であり、iに1加算、iは3になり次のループ判定へ
ループ3回目  x[3] < 6 ではなく、iが3の状態でループを抜ける

となります。
2021.04.24 16:36

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop