본문 바로가기

알고리즘

이진 탐색 - 구현

# 이진 탐색 소스코드 구현 (재귀함수)
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)

재귀 함수를 이용한 이진 탐색 구현이다

# 이진 탐색 소스코드 구현 (반복문)
def binary_search(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

반복문을 이용한 이진 탐색 구현이다.

'알고리즘' 카테고리의 다른 글

백준-1158 (파이썬)  (0) 2023.10.02
백준-10866  (1) 2023.10.02
퀵 정렬  (0) 2023.09.22
BFS) 미로 탈출  (0) 2023.09.22
DFS) 음료수 얼려 먹기  (0) 2023.09.22