선형 탐색(Linear Search)은 데이터를 하나씩 순서대로 확인하여 원하는 값을 찾는 가장 기본적인 탐색 알고리즘입니다.
일반적으로 무언가 데이터에서 원하는 값을 찾아낸다면,
효율적으로 찾아낼 필요가 없는 경우 자연스럽게 이 방법을 사용하고 있게 됩니다.
다음은 파이썬에서 선형 탐색을 구현한 예제입니다. 여기서는 리스트에서 특정 값을 찾는 과정을 보여줍니다.
def linear_search(arr, target):
for i in range(len(arr)):
if arr[i] == target:
return i # 값을 찾으면 인덱스를 반환
return -1 # 값을 찾지 못하면 -1을 반환
# 예제 리스트
numbers = [3, 5, 2, 4, 9, 1, 10]
# 값을 찾기 위한 탐색
target = 4
index = linear_search(numbers, target)
if index != -1:
print(f"값 {target}은 인덱스 {index}에 있습니다.")
else:
print(f"값 {target}을 찾을 수 없습니다.")
선형 탐색의 장점과 단점
장점:
단점:
문자열 리스트에서 특정 단어를 찾는 예제를 통해 선형 탐색을 이해해보겠습니다.
def linear_search(words, target):
for i in range(len(words)):
if words[i] == target:
return i # 값을 찾으면 인덱스를 반환
return -1 # 값을 찾지 못하면 -1을 반환
# 예제 단어 리스트
words = ["apple", "banana", "cherry", "date", "elderberry", "fig", "grape"]
# 값을 찾기 위한 탐색
target = "cherry"
index = linear_search(words, target)
if index != -1:
print(f"단어 '{target}'은 인덱스 {index}에 있습니다.")
else:
print(f"단어 '{target}'을 찾을 수 없습니다.")
요약해볼까요?