探索のwhile形式を見つからない場合の対策を含めて
i < a.length && a[i]!=v
という条件にした場合, このwhile形式が終了した時点での パラメータiの値は
ここで使った継続条件では,繰返しの毎回ごとに条件を2個,すなわち"i < a.length"と"a[i]!=v"とを調べます.このうち前者の条件は,見つからなかった場合だけのためのもので,ほとんどの場合は無駄になります.これを避ける方法の一つに,
a[a.length-1]にあらかじめvを入れておく
やり方があります.もちろん,この"最後の要素"は,調べる対象としては使えません.繰返しは
while(a[i]!=v) i=i+1;
となり,
i==a.length-1が“見つからなかった”ことを示す
ことになります.
この最後の要素値のように,
調べられる値のようなふりをしているが,実は繰返しを確実に停止させるためのもの
を一般に番兵(sentinel)と呼び,プログラミングの中のいろいろなところで使われています.
26.1.6.16 探索 | 26.1.6.17 ない場合 | 26.1.6.18 探索の例 | ||
2009年度版に向けて現在作業中です.
このページに関してお気づきの点がありましたら
コメント投稿システムまでお願いします.
|
Thu, 24 Jun 2004 19:14:50 JST (1863d) |