プログラムの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」は「エ」です。
ホームに戻るボタン↓