Algorithm(알고리즘)/재귀함수
6) 리스트 내 요소 찾는 재귀함수
반응형
6. 리스트 내 요소 찾는 재귀함수
def binary_search(element, some_list, start_index=0, end_index=None):
# end_index가 따로 주어지지 않은 경우에는 리스트의 마지막 인덱스
if end_index == None:
end_index = len(some_list) - 1
midpoint = (end_index + start_index) // 2
if start_index > end_index:
return None
if element == some_list[midpoint]:
return midpoint
elif element < some_list[midpoint]:
return binary_search(element, some_list, start_index, midpoint - 1)
else:
return binary_search(element, some_list, midpoint + 1, end_index)
print(binary_search(2, [2, 3, 5, 7, 11]))
print(binary_search(0, [2, 3, 5, 7, 11]))
print(binary_search(5, [2, 3, 5, 7, 11]))
print(binary_search(3, [2, 3, 5, 7, 11]))
print(binary_search(11, [2, 3, 5, 7, 11]))
결과 : 0 None 2 1 4
반응형
'Algorithm(알고리즘) > 재귀함수' 카테고리의 다른 글
7) 하노이의 탑 (0) | 2021.05.13 |
---|---|
5) 파라미터 some_list를 거꾸로 뒤집는 재귀함수 (0) | 2021.05.13 |
4) 각 자릿수의 합 리턴 (재귀함수) (0) | 2021.05.13 |
3) 1부터 n까지의 합을 리턴 (0) | 2021.05.13 |
2) n번째 피보나치 수를 리턴 (재귀함수) (0) | 2021.05.13 |
댓글