카테고리 없음
이진 탐색 코드
ByteGuard
2025. 4. 15. 14:49
def binary_search(arr, target):
# 시작 인덱스와 끝 인덱스를 초기화합니다.
left = 0
right = len(arr) - 1
# 탐색 범위가 유효한 동안 반복합니다.
while left <= right:
# 중간 인덱스를 계산합니다.
mid = (left + right) // 2
# 중간값이 목표 값과 같은 경우, 인덱스를 반환합니다.
if arr[mid] == target:
return mid
# 목표 값이 중간값보다 작으면, 왼쪽 절반을 다시 탐색합니다.
elif arr[mid] > target:
right = mid - 1
# 목표 값이 중간값보다 크면, 오른쪽 절반을 다시 탐색합니다.
else:
left = mid + 1
# 값을 찾지 못한 경우, -1을 반환합니다.
return -1
# 예제 사용
sorted_list = [1, 3, 5, 7, 9, 11, 13]
target_value = 7
# 이진 탐색을 실행하고 결과 출력
result = binary_search(sorted_list, target_value)
print("찾은 인덱스:", result) # 출력: 찾은 인덱스: 3