プログラムの1行目で要求されている引数を用意します。
x[1 2 3 4 5 6 7] | n | k |
---|---|---|
1 3 2 4 2 2 2 | 7 | 3 |
1回目
処理は同じですので出来上がったトレース表を表示します。
Top | Last |
---|---|
1 | 7 |
x[1 2 3 4 5 6 7] | Pivot | i | j |
---|---|---|---|
1 | 2 | 7 | |
1 2 | |||
1 2 2 | |||
1 2 2 2 4 2 3 | 5 | 4 |
Lastを4に
2回目
Top | Last |
---|---|
1 | 4 |
x[1 2 3 4 5 6 7] | Pivot | i | j |
---|---|---|---|
1 | 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」は「エ」です。
ホームに戻るボタン↓