선형 검색 알고리즘은 간단한 검색 알고리즘으로, 목표 요소를 리스트나 배열에서 순차적으로 확인합니다. 시작부터 리스트의 각 요소를 확인하며 목표 요소를 찾거나 리스트의 끝에 도달할 때까지 계속됩니다. 알고리즘은 리스트의 처음부터 시작하여 각 요소를 목표 요소와 비교합니다. 목표 요소를 찾으면 해당 요소의 인덱스를 반환하고, 그렇지 않은 경우 목표 요소가 리스트에 없음을 나타내는 특수한 값을 반환합니다(예: -1).
이제 파이썬으로 선형 검색 알고리즘을 구현해 보겠습니다:
def linear_search(arr, target):
for index, element in enumerate(arr):
if element == target:
return index
return -1
# 예제 사용:
nums = [4, 7, 10, 2, 4, 7, 0, 2, 7, 3, 9]
targetNum = 7
result = linear_search(nums, targetNum)
if result != -1:
print(f"목표 숫자 {targetNum}은(는) 인덱스 {result}에 있습니다.")
else:
print(f"목표 숫자 {targetNum}은(는) 리스트에 존재하지 않습니다.")
이 파이썬 코드에서 linear_search 함수는 두 개의 인자를 받습니다. arr은 검색할 리스트이고 target은 찾으려는 요소입니다. 함수는 for 루프를 사용하여 arr의 각 요소를 반복합니다. enumerate 함수를 사용하여 각 반복에서 인덱스와 요소를 모두 얻습니다.
루프 내에서 현재 element가 target과 같은지 확인합니다. 조건이 참이면 목표 요소를 찾았으므로 해당 요소의 인덱스를 반환합니다.
루프가 목표 요소를 찾지 못하고 끝났을 경우, 함수는 목표가 리스트에 없음을 나타내는 -1을 반환합니다.
예제 사용 부분은 숫자들의 리스트(nums)와 targetNum이 7인 경우를 보여줍니다. 목표 숫자가 발견되었는지 여부에 따라 적절한 메시지를 출력합니다. 주어진 nums 리스트에서 목표 숫자 7은 인덱스 1에 위치하므로 출력은 다음과 같을 것입니다:
목표 숫자 7은(는) 인덱스 1에 있습니다.
목표 숫자가 리스트에 없었다면 출력은 다음과 같았을 것입니다:
목표 숫자 7은(는) 리스트에 존재하지 않습니다.
좋은 정보 감사합니다