2012-12-12 12 views
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에 대한 특정 이름이 있는지 알고 싶습니다을 상상해보십시오. 이러한 값이 루프를 멈추는 데 사용되면 센티넬 값이라고합니다. 그러나이 경우 첫 번째 객체 (객체 [1])를 비교할 대상이 될 수 있도록 사용하고 있습니다. 분명히 objects[0]은 실제 객체가 아니며 단지 일종의 플래그입니다. 여전히 센티널 가치로 불리우나요? 이것에 대한 또 다른 이름이 있습니까? 아니면 전혀하지 않아야합니까?

자신을 분명히하지 않았 으면 알려주고 내 질문을 다른 방법으로 설명해야합니다.

+1

"센티넬 값"은 IMO가 미세합니다. 아니면 "경계 조건"일까요? – Nemo

답변

2

Cormen et al. 소개의 글은 (3 에드.) 알고리즘 238 페이지 :

센티넬은 우리가 경계를 조건을 단순화 할 수 더미 객체입니다.

이 정의는 사용법을 설명하기에 충분히 넓습니다 (예 : 무한대의 센티널 값은 mergesort의 병합 루틴을 단순화하기 위해 CLRS에서 사용됩니다).

1

필자는 처음부터 끝까지 항상 "센티넬"이라고 불렀으며 아직 해고되지 않았습니다.

+1

그러나 이것은 전리품 값의 정의와 전혀 일치하지 않습니다. "존재가 루프의 종료를 보장하는 특별한 값"(http://en.wikipedia.org/wiki/Sentinel_value) – dcastro

+2

@dcastro : Cormen et al. "센티널은 경계 조건을 단순화 할 수있는 더미 객체입니다." – Nabb

+0

@Nabb : 아, 그럼 그걸 정착시킵니다. 내가 발견 한 다른 모든 정의는 이러한 경우를 설명하지 않습니다. 이것은 실제로 나의 석사 학위 논문을위한 것이며 인용문은 매우 유용합니다. 내가 그것을 받아 들일 수 있도록 대답으로 써 주시겠습니까? – dcastro