최대 1 분 소요

이진탐색이란 ?

이진탐색은 오름차순으로 정렬된 정수의 리스트를 같은 크기의 두 부분 리스트로 나누고 필요한 부분에서만 탐색하도록 제한하여 원하는 원소를 찾는 알고리즘이다.

Python 이진탐색 알고리즘 구현

def binary_search(ls,n):
    low = 0
    high = len(ls)-1
    mid = (low+high)//2
    while True:
        chk = n in ls 
        if chk == False:
            return '숫자 %d 이(가) 없습니다.'%n
            break
        if n > ls[mid]:
            low = mid + 1
            mid = (low+high)//2
        elif n < ls[mid]:
            high = mid - 1
            mid = (low+high)//2
        else :
            return '숫자 %d 이(가) 있습니다.\n' %n
            break

data = [1,7,11,12,14,23,44,47,51,64,67,77,140,672,871]

print(binary_search(data,7))
# 숫자 7이 있습니다.

print(binary_search(data,8))
# 숫자 8이 없습니다.

댓글남기기