3

次の擬似コードを想像してください

objects[i], 1 <= i <= n 

objects[0] = 0

for i from 1 to n
  if(objects[i] - objects[i-1] > constant)
    do something

割り当てに特定の名前があるかどうか知りたいobjects[0] = 0です。このような値がループを停止するために使用される場合、それらはセンチネル値と呼ばれることを知っています。ただし、この場合、最初に評価されたオブジェクト (objects[1]) が比較対象となるように使用しています。明らかに、objects[0]実際のオブジェクトではなく、フラグのようなものです。それはまだセンチネル値と呼ばれていますか?これには別の名前がありますか?それとも、これをまったく行うべきではありませんか?

私が自分自身を明確にしていない場合はお知らせください。別の方法で質問を説明する必要があります。

4

2 に答える 2

2

コーメン等。アルゴリズム入門(第 3 版) の 238 ページに次のように書いています。

センチネルは、境界条件を単純化できるダミー オブジェクトです。

この定義は、使用法を説明するのに十分な広さです (たとえば、無限のセンチネル値は、CLRS でマージソートのマージ ルーチンを単純化するために使用されます)。

于 2012-12-12T09:37:14.133 に答える
1

私は常に最初か最後かを問わず、それを「歩哨」と呼んでいますが、それが理由でクビになったことはまだありません。

于 2012-12-12T01:35:28.260 に答える