Algorithm 循环第一次迭代的Sentinel值?

Algorithm 循环第一次迭代的Sentinel值?,algorithm,pseudocode,sentinel,Algorithm,Pseudocode,Sentinel,想象一下下面的伪代码 objects[i], 1 <= i <= n objects[0] = 0 for i from 1 to n if(objects[i] - objects[i-1] > constant) do something objects[i],1我一直称它为“哨兵”,无论是在开头还是结尾,但还没有因此被解雇。Cormen等人在第238页的《算法导论》(第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[i],1我一直称它为“哨兵”,无论是在开头还是结尾,但还没有因此被解雇。Cormen等人在第238页的《算法导论》(第3版)中写道:

哨兵是一个虚拟对象,它允许我们简化边界 条件


此定义足够广泛,足以说明您的使用情况(例如,CLR中使用无穷大的sentinel值来简化mergesort的合并例程)。

但这与sentinel值的定义完全不匹配:“一个特殊值,其存在保证循环的终止”(from:)@dcastro:Cormen等人写道“哨兵是一个虚拟的物体,它允许我们简化边界条件。”@Nabb:啊,那就解决了。我找到的所有其他定义都不能解释这些情况。这实际上是我的硕士论文,引用是非常有用的。你能把它作为一个答案,让我接受它吗?“哨兵值”在我看来很好。或者也许”边界条件“?