반응형
선형 탐색(Linear Search)은 가장 간단한 검색 알고리즘으로, 배열의 앞에서부터 순차적으로 값을 비교해 원하는 값을 찾는 방식입니다. 구현이 매우 쉬우며, 정렬 여부와 상관없이 사용할 수 있다는 장점이 있습니다.
1. 동작 원리
- 배열의 첫 번째 요소부터 마지막 요소까지 반복
- 현재 요소가 찾고자 하는 값과 같으면 인덱스를 반환
- 끝까지 찾아도 없다면 -1을 반환
2. JavaScript 예제
function linearSearch(arr, target) {
for (let i = 0; i < arr.length; i++) {
if (arr[i] === target) return i;
}
return -1;
}
console.log(linearSearch([10, 20, 30, 40, 50], 30)); // 2
console.log(linearSearch([10, 20, 30], 99)); // -1
- === 연산자를 사용하여 값과 타입을 모두 비교
- 가장 먼저 일치하는 값의 인덱스를 반환함
3. 성능 분석
| 구분 | 시간 복잡도 |
| 최선의 경우 | O(1) |
| 평균 | O(n) |
| 최악의 경우 | O(n) |
- 입력이 많아질수록 속도가 느려짐
- 공간 복잡도는 O(1)
4. 선형 탐색의 특징
- 배열이 정렬되어 있지 않아도 동작 가능
- 구현이 매우 간단하며 직관적
- 데이터가 많거나 자주 탐색이 일어날 경우에는 비효율적
마무리
선형 탐색은 소규모 데이터나 한두 번만 검색할 때 유용하며, 알고리즘 학습의 시작점으로도 좋습니다. 하지만 대용량 데이터를 자주 탐색해야 하는 경우에는 이진 탐색처럼 더 효율적인 알고리즘으로 전환하는 것이 좋습니다.
가장 기본이 되는 탐색 알고리즘이므로 반드시 익혀두어야 할 기초입니다.
반응형
'Programing > Algorithm' 카테고리의 다른 글
| 자바스크립트로 팩토리얼 계산하기: 재귀함수 vs 반복문 (0) | 2025.05.22 |
|---|---|
| 너비 우선 탐색 (BFS: Breadth-First Search) 설명과 JavaScript 예제 (1) | 2025.05.22 |
| 깊이 우선 탐색 (DFS: Depth-First Search) 설명과 JavaScript 예제 (0) | 2025.05.22 |
| 이진 탐색 (Binary Search) 설명과 JavaScript 예제 (0) | 2025.05.22 |
| 계수 정렬 (Counting Sort) 설명과 JavaScript 예제 (0) | 2025.05.22 |
| 퀵 정렬 (Quick Sort) 설명과 JavaScript 예제 (1) | 2025.05.22 |
| 병합 정렬 (Merge Sort) 설명과 JavaScript 예제 (1) | 2025.05.21 |
| 삽입 정렬 (Insertion Sort) 설명과 JavaScript 예제 (0) | 2025.05.21 |