이분탐색이란?
정렬되어 있는 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법이다. 찾으려는 데이터와 중간점 위치에 있는 데이터를 반복적으로 비교해서 원하는 데이터를 찾는 것이다. 재귀와 반복문으로 구현할 수 있다.

재귀 함수로 구현한 이분 탐색
def binary_search(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_search(array,target,start,mid-1)
else:
return binary_search(array,target,mid+1,end)
a = [1,2,3,4,5]
target = 2
print(f"이분 탐색 결과 : {binary_search(a,target,0,len(a)-1)}")
반복문으로 구현한 이분 탐색
def binary_search2(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
a = [1,2,3,4,5]
target = 2
print(f"이분 탐색 결과 : {binary_search2(a,target,0,len(a)-1)}")

'Python > 이분탐색' 카테고리의 다른 글
| 99클럽 코테 스터디 5일차 TIL + 백준 2470 두 용액 (파이썬) (0) | 2025.01.17 |
|---|---|
| 99클럽 코테 스터디 4일차 TIL + 백준 2343 기타 레슨 (파이썬) (0) | 2025.01.16 |
| 99클럽 코테 스터디 3일차 TIL + 백준 11663 선분 위의 점 (파이썬) (0) | 2025.01.15 |
| 99클럽 코테 스터디 2일차 TIL + 백준 1654 랜선 자르기 (파이썬) (0) | 2025.01.14 |
| 99클럽 코테 스터디 1일차 TIL + 백준 2776 암기왕 (파이썬) (0) | 2025.01.13 |
댓글