✨이진탐색(Binary Search)
정렬된 리스트에서 특정한 값의 위치를 찾는 알고리즘
처음 중간의 값을 임의의 값으로 선택하여, 그 값과 찾고자 하는 값의 크고 작음을 비교하는 방식
✨Python 코드
def binarySearch(array, value, low, high):
if low > high:
return False
mid = (low+high) / 2
if array[mid] > value:
return binarySearch(array, value, low, mid-1)
elif array[mid] < value:
return binarySearch(array, value, mid+1, high)
else:
return mid
✨Python bisect 라이브러리
import bisect
bisect_left(literable, value) # 왼쪽 인덱스를 구하기
bisect_right(literable, value) # 오른쪽 인덱스를 구하기
🎈참고자료
'Computer Science > Algorithm&DataStructure' 카테고리의 다른 글
[Algorithm] 유니온 파인드(Union-Find) (0) | 2024.05.01 |
---|---|
[Algorithm] 트리(tree) (0) | 2024.04.23 |
[Algorithm] 투 포인트(Two-Point Algorithm) (2) | 2024.04.18 |