본문 바로가기

Programming [Python]/파이썬 알고리즘 툴

#2 [이분 탐색 - Binary Search] 파이썬 구현

설명: https://ko.wikipedia.org/wiki/%EC%9D%B4%EC%A7%84_%EA%B2%80%EC%83%89_%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98

 

def BinarySearch(arr, val, low, high):
    if low > high:
        return False #해당 배열에 타겟 숫자 미존재
    
    mid = (low + high) // 2 #위치 기반으로 찾는 것
    
    if arr[mid] > val:
        return BinarySearch(arr, val, low, mid - 1) #수가 중앙 값보다 아래 있는 경우
    elif arr[mid] < val:
        return BinarySearch(arr, val, mid + 1, high) #수가 중앙 값보다 위에 있는 경우
    else:
        return True #아니면 숫자를 출력 -> return val