# 이진탐색
def binary_search(data, search):
if len(data) == 1 and search == data[0]:
return True
if len(data) == 1 and search != data[0]:
return False
if len(data) == 0:
return False
medium = len(data) // 2
if search == data[medium]:
return True
else:
if search > data[medium]:
return binary_search(data[medium:], search)
else:
return binary_search(data[:medium], search)
# 이진탐색 TEST
import random
data = random.sample(range(100), 10)
sorted_data = sorted(data)
print(sorted_data)
binary_search(sorted_data, 10)
n개의 리스트를 매번 2로 나누어 1이 될 때까지 비교연산 k회 진행
=> => =>
Big O 표기법으로는 k+1이 최종 시간 복잡도이기 때문에,
Big O 표기법에서는 상수가 모두 삭제되므로,