平成27年春期午後問8

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
れいさん  
(No.1)
https://www.fe-siken.com/kakomon/27_haru/pm08.html
〔aについて〕
配列xの要素は[3,5,6,4,7,2,1]で、k=3なので、1回目の選択処理では Pivot の値が x[3]=6 になります。
iが1から3まで進み、jは7のままです。
3,5,6(i),4,7,2,1(j)
x[i] と x[j] を交換(赤字部分)し、i+1、j-1を行うと、以下のようになります。
3,5,1,4(i),7,2(j),6
iが7の位置まで進み、jは6の位置のままです。
3,5,1,4,7(i),2(j),6

iが7の位置まで進み、jは6の位置のままになる理由がわかりません。
どなたかご教授ください。
2022.09.08 18:02
sh0080さん 
(No.2)
jの6というのは、要素番号6の2のことですね。

ですので、正確には
「iが7の位置まで進み、jは2(要素番号6)の位置のままです。」だと思います。
  3,5,1,4,7(i),2(j),6
2022.09.08 22:00
れいさん  
(No.3)
回答ありがとうございます。
iが7に進む理由についても教えていただけませんでしょうか?
2022.09.10 11:25
boyonboyonさん 
FE ブロンズマイスター
(No.4)
>iが7に進む理由についても教えていただけませんでしょうか?

■ X[i} < Pivot
  ・i=i+1

の処理で、iが5になります。
ちなみに、jも
■ X{j} > Pivot
  ・j=j-1

の結果(X{6}=2 ≦ Pivot なのでループ処理は行われない)、現在 j=6 になっています。
iとjの値が決まり、i≧j ではないので、γの処理が行われ、ループの最初に戻ります。
2022.09.10 18:12

返信投稿用フォーム

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

その他のスレッド


Pagetop