def binary_search(data, search): print (data) 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+1:], search) else: return binary_search(data[:medium], search)
import randomdata_list = random.sample(range(100), 10)data_list
[69, 65, 18, 71, 11, 10, 42, 68, 36, 89]
data_list.sort()
data_list
[10, 11, 18, 36, 42, 65, 68, 69, 71, 89]
binary_search(data_list, 66)
[10, 11, 18, 36, 42, 65, 68, 69, 71, 89]
[68, 69, 71, 89]
[68, 69]
[68]
False
프로그래밍 연습
다음 10000개의 데이터를 삽입 정렬, 퀵 정렬로 정렬하는 함수를 각각 만들어보고, 각각의 정렬 시간을 출력하기
# 데이터 셋import randomdata_list = random.sample(range(100000), 10000)# 현재 시간 구하기import datetimeprint (datetime.datetime.now())