想象一下下面的伪代码
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
是否有特定的名称。
我知道当这些值用于停止循环时,它们被称为sentinel值。
然而,在这种情况下,我正在使用它,以便评估的第一个对象(对象[1])将有一些东西要比较 - 显然,objects[0]
不是真正的对象,只是一种标志。它仍被称为哨兵价值吗?还有另一个名字吗?或者我不应该这样做吗?
如果我没有说清楚,我应该尝试以另一种方式解释我的问题。
答案 0 :(得分:2)
Cormen等。写入算法导论(第3版),第238页:
哨兵是一个虚拟对象,可以让我们简化边界 条件。
此定义足以说明您的使用情况(例如,在CLRS中使用无限的标记值来简化mergesort的合并例程。)
答案 1 :(得分:1)
无论是在开头还是结尾,我总是把它称为“哨兵”,而且还没有被解雇。