トップ->アルゴリズム入門

アルゴリズム入門内検索

目次
アルゴリズムトップ
0. はじめに

1. アルゴリズム
   1. アルゴリズムとは
   2. 当ページの範囲
   3. 良いアルゴリズム
   4. フローチャートの書き方(記号)
   5. フローチャートの書き方(構造)
   6. 順次構造
   7. 分岐構造
   8. 反復構造

2. 順次構造
   1. 代入
   2. 計算
   3. 入力
   4. 出力
   5. 練習問題1
   6. 練習問題2

3. 分岐構造
   1. 条件分岐
   2. 単一分岐
   3. 練習問題1
   4. 多重分岐
   5. 複合条件
   6. ケース(多方向分岐)
   7. 練習問題2
   8. 練習問題3

4. 反復構造
   1. 反復構造の種類
   2. 前判定型
   3. 後判定型
   4. 練習問題1
   5. 練習問題2
   6. 練習問題3
   7. 多重反復処理(ネスト)
   8. 練習問題4
   9. 練習問題5

5. 配列
   1. 配列とは
   2. 練習問題
   3. 2次配列
   4. 練習問題
   5. 素数を求める,その1
   6. 素数を求める,その2

6. 検索・ソート
   1. サブルーチン
   2. シーケンシャルサーチ
   3. バイナリサーチ
   4. 練習問題
   5. ルックアップテーブル
   6. ソートとは
   7. 選択法
   8. 交換法
   9. バブルソート
   10. 挿入法
   11. クイックソート
   12. 処理速度の比較

7. 文字列
   1. 文字と文字列
   2. 文字列処理
   3. 文字列のコピー
   4. 練習問題
   5. 文字列の比較
   6. 文字列の連結
   7. 文字列の検索



トップ-> アルゴリズム入門:3章.分岐構造-> 3-4.多重分岐

←前ページへ :  トップへ :  次ページへ→



3-4.多重分岐

  前のページでは、多重分岐を用いて最小値を求めた。しかしこのような方法では、 3つの変数から最小値を求めるだけで、条件分岐を3つも用いており、変数が増えた場合 とんでもないことになってしまう。そこで「書き換え法(仮称)」という方法がある。

 例題:
変数a,b,cに適当な数が代入されている。この変数中で最小値を変数wに代入する。

 考え方:
これはとりあえず1つめの変数を仮の最小値とする。 次の変数を仮の最小値と比較して小さければ、その値を仮の最小値にする。 これを変数の数だけ繰り返す。



void main(){
	int a,b,c,w;
	a=100;
	b=200;
	c=300;

	w=a;

	if(b<w)
		w=b;

	if(c<w)
		w=c;

	printf("最小値は%dです\n",w);
}
	.model	small
	.data
A	byte	100
B	byte	200
C	byte	300
W	byte	?

	.code
	.startup
	mov	al,A
	mov	W,al

	mov	al,b
	cmp	al,W
	jnb	CHECK_C

	mov	W,al

CHECK_C:
	mov	al,c
	cmp	al,W
	jnb	CHECK_END

	mov	W,al

CHECK_END:
;	表示部は省略

	.exit	0
	end


 変数が多くなればこの方法でも、どんどんプログラムが長くなります。 もちろん実際のプログラムでは、どんどん長く書くわけではありません。 チェックする部分は同じような処理をさせているわけですので、後で述べる 反復構造を利用するのです。しかし、考え方は この「書き換え法(仮称)」と全く同じです。


←前ページへ :  トップへ :  次ページへ→