Page 99 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 99
a 첫 번째 요소 6에 주목합니다. 원하는 값이 없습니다.
b 두 번째 요소 4에 주목합니다. 원하는 값이 없습니다.
c 세 번째 요소 3에 주목합니다. 원하는 값이 없습니다.
d 네 번째 요소 2에 주목합니다. 원하는 값입니다. 검색에 성공입니다.
앞에서는 검색에 성공한 예를 살펴보았습니다. 그런데 키 값과 같은 값을 가진 요소가 배열에
항상 존재하지는 않습니다. 예를 들어, 위의 배열에서 5를 검색하면 배열에 5가 없기 때문에
검색에 실패입니다. 이러한 검색 과정을 나타낸 것이 그림 3-3입니다. a 에서 h 까지 배열의
요소를 맨 앞부터 순서대로 검색합니다. 검색을 끝까지 수행해도 키 값과 같은 값의 요소를
만나지 못했습니다.
1 2 3 4 5 6
a 6 4 3 2 1 3 8
0 ❶ 2 3 4 5 6
b 6 4 3 2 1 3 8
배열의 요소를 맨 앞부터
0 1 ❷ 3 4 5 6 순서대로 검색합니다.
c 6 4 3 2 1 3 8
0 1 2 ❸ 4 5 6
d 6 4 3 2 1 3 8
0 1 2 3 ❹ 5 6
e 6 4 3 2 1 3 8
0 1 2 3 4 ❺ 6
f 6 4 3 2 1 3 8
0 1 2 3 4 5 ❻
g 6 4 3 2 1 3 8
0 1 2 3 4 5 6
h 6 4 3 2 1 3 8
검색 실패!
배열의 끝을 지나갔습니다.
[그림 3-3] 선형 검색의 예(5를 검색 : 검색 실패)
성공의 예와 실패의 예를 보면 배열 검색의 종료 조건은 2개임을 알 수 있습니다. 다음 조건
중 하나라도 성립하면 검색을 종료합니다.
① 검색할 값을 발견하지 못하고 배열의 끝을 지나간 경우
② 검색할 값과 같은 요소를 발견한 경우
03•검색 99