不代表序列结尾的哨兵是什么意思?

时间:2019-06-25 19:05:13

标签: computer-science terminology

根据Wikipedia

  

在计算机编程中,前哨值(也称为标志值,跳闸值,无赖值,信号值或伪数据)在算法中属于特殊值,通常以循环或递归算法将其存在作为终止条件。

一个常见的示例是在正整数数组的末尾使用-1来表示当数组大于填充它的数据时数据的末尾。

但是,当我们使用-1而不是确保终止而只是将其作为不可能的值时该怎么办?例如:

# `a` is an array with the numbers from 0 to 4, in random order.
# We will use `b` to track where in `a` each number is. The position in `b`
# denotes the number, and the value denotes the index in `a`.
# `calculate_indices()` is a function that does this.

a = [3, 4, 1, 0, 2]
b = [-1, -1, -1, -1, -1]

calculate_indices(a, b)

print(b) => [3, 2, 4, 0, 1]

如果我们将b初始化为[0, 0, 0, 0, 0],这将不起作用,因为0在这里具有真正的含义-即a中的第0个位置。因此,我们使用了不可能的值-1

这种用法有名称吗?

1 个答案:

答案 0 :(得分:0)

根据致癌物质,some之后research,似乎维基百科的定义确实太严格了,这也可以称为哨兵。我找不到该模式的其他名称。