반응형
# 이진검색 구현 및 예제 코드
 
def bsearch( s, e, first, last):
    if(last - first) < 2:
        return s[first] == e or s[last] == e
 
    mid = first + (last-first)//2
    if s[mid] == e:
        return True
 
    if s[mid] > e:
        return bsearch(s, e, first, mid-1)
    else:
        return bsearch(s, e, mid+1, last)
 
# 검색 함수
def search(s, e):
    return bsearch(s, e, 0, len(s)-1)
 
# Testing Code
a = [i for i in range(100)]
print( search(a, 99) )  # True
print( search(a, -1) )  # False
print( search(a, 0) )   # True 

 

반응형

+ Recent posts