第2回目(2005/05/10)
各自問題集をどんどん先に進める。
比較について
基本的に2つの値の大小等の比較しかできない。
| 比較の式 | 可否 |
|---|---|
| A > B | ○ |
| A>B>C | × |
A>B>CはA>BかつB>Cと表現すればよい。
3数(A、B、C)から最大値と最小値を見つける
同時に2数の比較しかできないことに注意。
- 2数(AとB)の中での最大値と最小値を見つける
- 2数(AとB)の中の最大値と残りの数(C)を比較すれば3数の中での最大値がわかる
- Cが最大値でなければ2数(AとB)の最小値と比較すれば3数の中の最小値がわかる。
値の交換
2つの領域(変数)の値を交換するときは移動する値を一時的に待避する領域を用意する。たとえば、領域をA、Bの値を入れ替えるときに待避用の領域Wを使った例を示す。
| 処理 | 領域A | 領域B | 領域W |
|---|---|---|---|
| 初期状態 | 10 | 1 | ? |
| A→W | 10 | 1 | 10 |
| B→A | 1 | 1 | 10 |
| W→B | 1 | 10 | 10 |
並べ替え(ソート)
領域に入っているデータを小さい順に並べ替えることを昇順、大きい順に並べ替えることを(降順)という。
並べ替えには様々な方法がある。
- 該当する領域範囲の中から最小値を探し、その値を範囲の先頭に移動する。
- 範囲の先頭の領域を除外して上記と同じ処理を繰り返す。