基本情報技術者過去問題 平成27年春期 午後問8 設問2 解説

問題文は他のサイトを別ウインドウで開いてご覧ください。

プログラムの1行目で要求されている引数を用意します。

引数
x[1 2 3 4 5 6 7] n k
1 3 2 4 2 2 2 7 3



1回目

処理は同じですので出来上がったトレース表を表示します。

表1
Top Last
1 7

表2
x[1 2 3 4 5 6 7] Pivot i j
1 3 2 4 2 2 2 2 1 7
2
1 2 2 4 2 2 3 3 6
1 2 2 4 2 2 3 4 5
1 2 2 2 4 2 3 5 4

Lastを4に


2回目


表1
Top Last
1 4


表2
x[1 2 3 4 5 6 7] Pivot i j
1 2 2 2 4 2 3 2 1 4
2
1 2 2 2 4 2 3 3 3

Topを4 Lastを2に



3回目

5行目に戻って Top<Last が False なのでループを抜けて x[k] を return します。
7個のデータの中で3番目に小さい値は「2」です。

設問2の回答

「α」はPivotが設定された回数なので「c」は「イ」です。
「γ」は x[i] と x[j] が交換された回数なので「d」は「エ」です。


ホームに戻るボタン↓