알고리즘 요약
순차탐색 (sequential search)
- 첫째 항목부터 차례로 비교한다.
- 배열이 정렬되어 있지 않을 경우 사용.
- 시간복잡도: 평균 O(n/2) O(n)
탐색과정 설명
① ② ③ ④ ⑤ : 위치번호
[6, 2, 3, 4, 1] :숫자열이 있을 경우, 3을 찾는다면
-첫항목 ①6 과 찾는 값을 비교한다. 다르면 다음값 ②2와 비교. 없으면 계속 반복
[6, 2, 3, 4, 1] : 찾는 숫자가 나오면 탐색 완료
def seq_search(a, n):
for i in a: # 배열에서 값을 하나씩 꺼내서 루프
if i == n: # 값이 n과 같으면 True 리턴
return True
return False # 같은 값이 없으면 False 리턴
a = [6, 2, 3, 4, 1]
print(seq_search(a, 3)) # 결과 True
#include <stdio.h>
// 배열 a 에서 값 v 가 있는지 확인하는 함수
int seq_search(int a[], int len, int v) { // a:데이타 배열, len:배열길이, v:찾을 값
int i;
for (i = 0; i < len; i++) { // 배열갯수만큼 찾는 루틴 루프
if(a[i] == v) return 1; // 찾는 값과 같으면 1 리턴
}
return 0; // 찾는 값이 없으면 0 리턴
}
// 함수 테스트
int main() {
int a[] = {6, 2, 3, 4, 1}, len = sizeof(a) / sizeof(a[0]);
printf("%d", seq_search(a, len, 3)); //결과: 1
return 0;
}