Programing/Algorithm

선형 탐색 (Linear Search) 설명과 JavaScript 예제

2025. 5. 22. 21:14
반응형

선형 탐색(Linear Search)은 가장 간단한 검색 알고리즘으로, 배열의 앞에서부터 순차적으로 값을 비교해 원하는 값을 찾는 방식입니다. 구현이 매우 쉬우며, 정렬 여부와 상관없이 사용할 수 있다는 장점이 있습니다.


1. 동작 원리

  1. 배열의 첫 번째 요소부터 마지막 요소까지 반복
  2. 현재 요소가 찾고자 하는 값과 같으면 인덱스를 반환
  3. 끝까지 찾아도 없다면 -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
'Programing/Algorithm' 카테고리의 다른 글
  • 깊이 우선 탐색 (DFS: Depth-First Search) 설명과 JavaScript 예제
  • 이진 탐색 (Binary Search) 설명과 JavaScript 예제
  • 계수 정렬 (Counting Sort) 설명과 JavaScript 예제
  • 퀵 정렬 (Quick Sort) 설명과 JavaScript 예제
Dongkkase
Dongkkase
개발자로 일하면서 부딪히는 문제풀이가 누군가에게 도움이 되길 바라며
    반응형
  • Dongkkase
    정집사의 개발로그
    Dongkkase
  • 전체
    오늘
    어제
    • All (478)
      • 금융 (61)
      • Programing (295)
        • Algorithm (39)
        • API (2)
        • javascript (122)
        • CSS (8)
        • HTML (10)
        • PHP (15)
        • JAVA (27)
        • JSP (17)
        • JSP 예제 (1)
        • IOS (1)
        • Android (1)
        • Sencha Touche (1)
        • bat file, cmd (0)
        • 디버깅 (2)
        • SQL (21)
        • MS-SQL (1)
        • MySQL (13)
        • 보안 (5)
      • Server (14)
        • Docker (1)
        • Windows (9)
        • Linux (3)
        • jeus (1)
      • Database (6)
      • IT 일반 (15)
      • 리뷰 (38)
        • Book (17)
        • 제품 (2)
        • 영화 소개 (11)
        • 음악 소개 (7)
      • 잡생각 (36)
        • 회고 (3)
        • 컬럼 (4)
        • 자료실 (6)
        • 낙서장 (12)
        • 위시리스트 (2)
        • WOW (1)
        • 덕 (1)
  • 인기 글

  • 최근 댓글

  • 태그

    iT's MY LiFE
    php
    Java
    It
    자바스크립트유틸
    IT 관련
    자바
    블로그
    위시리스트
    js패턴
    IT·컴퓨터
    jsp
    사고 싶은 책
    자바스크립트
    읽고 싶은 책
    디자인패턴
    SQL
    기초
    JavaScript
    IT블로그
Dongkkase
선형 탐색 (Linear Search) 설명과 JavaScript 예제
상단으로

티스토리툴바