Binary Search 01

Daniel·2021년 8월 11일
0

Algorithm&DataStructure

목록 보기
3/9
post-thumbnail

Binary Search 이분 검색

이분 검색은 반복적으로 배열을 나누어가며 불필요한 값들을 미리 제거하며 겁색 범위를 좁혀 나가며 원하는 값을 찾아나간다. 이분 검색은 O(log n)의 시간 복잡도를 갖고있다.

Python 예제:

arr = [ 1, 3, 4, 6, 7, 8, 10, 13, 14 ]
x = 4

def binarySearch (arr, l, r, x):
  
    if r >= l: 
    
        mid = l + (r - l) // 2  
        if arr[mid] == x:
            return mid          
        elif arr[mid] > x:
            return binarySearch(arr, l, mid-1, x)  
        else:
            return binarySearch(arr, mid + 1, r, x)
  
    else:
        return -1
        
result = binarySearch(arr, 0, len(arr)-1, x)
  
if result != -1:
    print ("Element is present at index % d" % result)
else:
    print ("Element is not present in array")

찾고자 하는 값을 배열의 중간 값과 비교한다. 만약 배열의 값이 크면 배열의 왼쪽 반과 비교를 계속하고 배열의 값이 작으면 오른쪽 반과 비교를 계속한다. 그리고 값을 찾을때 까지 전 과정을 반복한다.

profile
My study blog 🧑🏻‍💻

0개의 댓글