카테고리 없음

파이썬 선형검색

rlarudals 2025. 1. 21. 01:26

선형검색(linear search)란 직선 모양으로 늘어선 배열에서 검색하는 경우 원하는 키값을 가진 원소를 찾을 때 까지 맨 앞 부터 스캔하여 순서대로 검색하는 알고리즘.

 

무작위로 늘어놓은 데이터 집합에서 작업을 수행한다.

 

선형검색 그림

def linear_search(arr, target):
    for i in range(len(arr)):
        if arr[i] == target:
            return i  # 찾은 값의 인덱스 반환
    return -1  # 값이 없으면 -1 반환

# 예제
arr = [4, 2, 7, 1, 9]
target = 7
result = linear_search(arr, target)
print("Index:", result)  # Output: Index: 2

 

장단점

장점

1. 단순한 구현 : 알고리즘이 직관적이고 구현이 간단함

2. 데이터 정렬 불필요 : 데이터가 정렬되어 있지 않아도 적용할 수 있음

3. 작은 데이터에 적합 : 데이터의 크기가 작을 때 효율적으로 사용 가능

 

단점

1. 효율성이 낮음 : 리스트의 크기가 커질 수록 시간이 늘어나서 비효율적

2. 이에 따른 시간 복잡도 상승 : 최악의 경우 모든 요소를 검색해야하기 때문에 시간 복잡도는 O(n)

 

활용하는경우

1. 데이터가 정렬되어 있지 않아 다른 효율적인 알고리즘을 사용할 수 없을 때

2. 데이터의 규모가 작을때

3. 복잡한 로직이 필요 없고 빠르게 구현해야 하는 경우