728x90
순차 탐색(Sequential Search)이란 배열에서 특정한 값을 찾기 위하서 배열의 첫 번째 항부터 마지막 항까지 하나씩 차례대로 확인해보는 방법을 말한다.
검색할 배열의 길이가 길면 비효율적이라는 단점이 있지만 검색 방법 중에서 간단하게 구현 가능하고, 정렬되지 않은 배열에도 사용할 수 있다는 장점을 가지고 있다.
다음은 순차 탐색에 사용될 배열을 시각화한 자료이다.
위의 배열에서 목표값을 5라고 가정한 후에 순차 탐색을 진행한다면 다음의 과정을 걸친다.
- 7과 목표값 5 비교 같지 않기 때문에 다음으로 넘어간다.
- 6과 목표값 5 비교 같지 않기 때문에 다음으로 넘어간다.
- 8과 목표값 5 비교 같지 않기 때문에 다음으로 넘어간다.
- 5와 목표값 5 비교 같기 때문에 해당 위치 값 출력 후 탐색 종료.
방금 설명한 방법을 코드로 설명하면 다음과 같다.
1
2
3
4
5
6
7
8
9
10
|
# 순차 탐색 알고리즘(선형 탐색)
def SequentialSearch(n, target, array):
for i in range(n):
if target == array[i]:
return i + 1
array = [7,6,8,5,4,1,3,2]
target = 5
print(SequentialSearch(len(array), target, array))
|
순차 탐색 함수의 인자로 배열의 크기, 목표값, 배열을 넣어준다.
728x90
'취업을 준비하며 정리하는 컴퓨터 지식 > Algorithm' 카테고리의 다른 글
[Algorithm] 탐욕법은 뭐야? (0) | 2021.01.14 |
---|---|
[Algorithm] 이진 탐색은 뭐야? (0) | 2021.01.13 |
[Algorithm] 병합 정렬은 뭐야? (0) | 2021.01.11 |
[Algorithm] 너비 우선 탐색(BFS)은 뭐야? (0) | 2021.01.09 |
[Algorithm] 깊이 우선 탐색(DFS)은 뭐야? (0) | 2021.01.08 |