이진탐색 알고리즘은 정렬된 리스트에서 특정 값을 빠르게 찾는 효율적인 방법
기본 원리는 리스트의 중간값과 찾고자 하는 값을 비교하여,
값이 중간값보다 작으면 왼쪽 부분을,
크면 오른쪽 부분을 탐색하는 것
과정은 반복적으로 진행되며,
시간 복잡도는 O(log n)으로 매우 효율적
이진탐색은 대량의 데이터에서 검색 성능을 극대화
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
# 사용 예시
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
target = 5
result = binary_search(arr, target)
print(result) # 출력: 4