이진 탐색 이란?
- 탐색할 자료를 둘로 나누어 해당 데이터가 있을만한 곳을 탐색하는 방법
- 오름차순으로 정렬되어 있어야 한다
파이썬 코드 구현
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)
'알고리즘 > 개념' 카테고리의 다른 글
[알고리즘] 정렬 알고리즘 총 정리 (0) | 2021.10.13 |
---|---|
[알고리즘] 파이썬 시간복잡도 정리 (0) | 2020.03.29 |
[알고리즘] 퀵 정렬 (quick sort) (0) | 2020.02.06 |
[알고리즘] DP (동적계획법) (0) | 2020.02.05 |
[알고리즘] 선택정렬 (selection sort) (0) | 2020.01.29 |