[python] 선형 검색

선형 검색은 리스트나 배열에서 특정 값이 있는지 찾는 가장 간단한 검색 알고리즘입니다. 이 알고리즘은 리스트의 처음부터 마지막까지 차례로 값을 비교하여 일치하는 값을 찾습니다.

알고리즘

  1. 리스트의 첫 번째 요소부터 시작합니다.
  2. 현재 요소와 찾고자 하는 값이 일치하는지 확인합니다.
    • 일치하면 검색을 종료하고 해당 요소의 인덱스를 반환합니다.
    • 일치하지 않으면 다음 요소로 이동합니다.
  3. 리스트의 모든 요소에 대해 검색을 완료했는데도 일치하는 값이 없으면 검색 실패로 처리합니다.

예시 코드

아래는 Python으로 구현된 선형 검색 알고리즘의 예시 코드입니다.

def linear_search(arr, target):
    for i in range(len(arr)):
        if arr[i] == target:
            return i
    return -1

# 검색 대상 리스트
my_list = [12, 34, 56, 78, 90]
# 찾고자하는 값
target_value = 56

# 선형 검색 수행
result = linear_search(my_list, target_value)

# 검색 결과 출력
if result == -1:
    print("찾고자 하는 값이 없습니다.")
else:
    print("찾고자 하는 값의 인덱스는", result, "입니다.")

시간 복잡도

선형 검색 알고리즘의 시간 복잡도는 O(n)입니다. 여기서 n은 리스트의 요소 개수입니다. 최악의 경우 리스트의 모든 요소를 확인해야 하므로 선형 시간이 소요됩니다.

마무리

선형 검색 알고리즘은 구현이 간단하고 사용하기 쉬우며, 작은 크기의 리스트나 정렬되지 않은 리스트에서 효과적입니다. 그러나 대량의 데이터를 가진 리스트에서는 성능이 좋지 않을 수 있으므로, 이 경우에는 다른 검색 알고리즘을 고려해야 합니다.