이미 정렬되어 있을때 사용
시간복잡도 O(logN)
반복문
def binary(array, target, start, end):
while start <= end:
mid = (start+end) // 2
if array[mid] == target:
return mid
elif array[mid] > target:
end = mid-1
else:
start = mid+1
return None
재귀
def binary(array, target, start, end):
if start>end:
return None
mid = (start+end) // 2
if array[mid] == target:
return mid
elif array[mid] > target:
return binary(array, target, start, mid-1)
else:
return binary(array, target, mid+1, end)
'🖥' 카테고리의 다른 글
[python] 배열 안의 원소 길이 순으로 리스트 정렬하기 (0) | 2022.10.24 |
---|---|
[python3] 소인수분해, 기약분수 만들기 (0) | 2022.10.17 |
[python3] 피보나치 동적계획법 (0) | 2022.10.01 |
[python3] numpy 이용 행렬의 곱셈 (0) | 2022.10.01 |
[python] 문자열 앞에 0으로 n자리수 채우기 (0) | 2022.09.24 |
댓글