본문 바로가기

알고리즘/개념

[알고리즘] 이진 탐색 (Binary Search)

이진 탐색 이란?

  • 탐색할 자료를 둘로 나누어 해당 데이터가 있을만한 곳을 탐색하는 방법
  • 오름차순으로 정렬되어 있어야 한다

 

파이썬 코드 구현

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)