위키득계정 ↗
기술

선형 탐색

선형 탐색기술
영문명
Linear search
다른 이름
순차 탐색
탐색 방식
원소를 하나씩 검사
전형적 최악 시간
O(n)
선형 탐색은 자료의 원소를 하나씩 확인하면서 조건에 맞는 항목을 찾는 방법이다. 자료가 정렬되어 있지 않아도 사용할 수 있으며, 최악의 경우 전체 원소를 확인한다. 순차 탐색이라고도 한다.

한 항목씩 검사하기

값을 찾을 때 현재 항목이 찾는 값인지 확인하고 다르면 다음으로 넘어간다. 처음 일치한 항목만 필요하다면 발견한 시점에 멈출 수 있다. 모든 일치 항목을 찾아야 한다면 나머지 원소도 계속 살펴야 한다.

찾지 못하는 경우

어느 위치에도 조건에 맞는 항목이 없다면 끝까지 확인해야 한다. 항목 n개를 한 번씩 검사하는 전형적인 방식의 최악 시간은 O(n)이다. 찾는 값이 맨 앞에 있는 경우의 짧은 수행 시간만으로 전체 성능을 설명해서는 안 된다.

정렬이 필요하지 않다

원소를 차례로 확인하므로 사전 정렬 없이도 동작한다. 자료가 적거나 한 번만 검색하는 상황에서는 정렬이나 별도 인덱스를 만드는 비용까지 고려할 수 있다. 단순한 방법이라는 이유만으로 어떤 상황에서도 부적합하다고 단정할 수는 없다.

다른 탐색과 비교하기

이진 탐색은 정렬된 순서를 이용해 범위를 줄이고, 해시 테이블은 키를 저장 위치에 대응시킨다. 선형 탐색은 이런 준비 없이 원소를 확인하는 대신 많은 조회가 반복되면 비용이 누적될 수 있다. 자료의 크기와 변경 빈도, 조회 횟수에 따라 선택 기준이 달라진다.

관련 문서

이진 탐색 / 해시 테이블 / 배열 / 알고리즘 / 자료 구조 / 정렬 알고리즘