🖥

[Python3] 이진탐색 알고리즘 반복문, 재귀

망록 2022. 10. 14.

목차

     

    이미 정렬되어 있을때 사용

    시간복잡도 O(logN)

     

    반복문

    def binary(array, target, start, end):
        while start <= end:
            mid = (start+end) // 2
            if array[mid] == target:
                return mid
            elif array[mid] > target:
                end = mid-1
            else:
                start = mid+1
        return None

     

    재귀

     

    def binary(array, target, start, end):
        if start>end:
            return None
        mid = (start+end) // 2
    
        if array[mid] == target:
            return mid
        elif array[mid] > target:
            return binary(array, target, start, mid-1)
        else:
            return binary(array, target, mid+1, end)

     

    댓글