이분 탐색(Binary Search)은 정렬된 배열 또는 리스트에서 원하는 값을 효율적으로 찾는 알고리즘입니다. 이분 탐색은 반복적으로 중간 값을 선택하고 원하는 값을 찾을 때까지 범위를 반으로 줄여나가는 방식으로 동작합니다. 이 알고리즘은 탐색 범위가 크고 정렬되어 있는 경우에 유용하게 사용됩니다.
이분 탐색의 주요 특징:
이분 탐색의 활용 예시:
파이썬 코드를 통해 이분 탐색을 예시로 살펴보겠습니다. 다음은 정렬된 배열에서 특정 원소의 위치를 이분 탐색으로 찾는 코드입니다.
def binary_search(arr, target):
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1
# 정렬된 배열
sorted_array = [1, 3, 5, 7, 9, 11, 13, 15]
target_value = 7
result_index = binary_search(sorted_array, target_value)
if result_index != -1:
print(f"{target_value}의 위치: {result_index}")
else:
print(f"{target_value}를 찾을 수 없습니다.")
이 코드는 정렬된 배열에서 특정 원소의 위치를 이분 탐색으로 찾는 예시입니다. 이분 탐색을 사용하여 효율적으로 원하는 값을 찾을 수 있습니다.