728x90
배열을 정렬
중앙값을 찾는다
중앙값을 기준으로 찾을 값이 큰 값 -> 반의 오른쪽으로
중앙값을 기준으로 찾을 값이 작은 값 -> 반의 왼쪽으로
같다면 -> 찾은 값을 반환 -> break
오른쪽 왼쪽을 구분하기 위하여
start, end 값을 지정
start = 0
end = len(배열)
중앙값
(start + ) // 2
list_a = [1,2,3,4,5,6,7]
def binary_search(target, data):
start = 0
end = len(data) - 1
while start<=end:
mid = (start + end) // 2
if data[mid] == target:
print(target)
break
elif data[mid] > target:
end = mid-1
print(data[start:end])
else:
start = mid+1
print(data[start:end])
print('없다')
binary_search(3, list_a)
728x90
반응형
'Data structure & Algorithm' 카테고리의 다른 글
[Algoritnm] 깊이 우선 탐색 (DFS, Depth-first Search) (0) | 2024.01.20 |
---|---|
[Data structure] 스택(Stack), 큐(Queue) (1) | 2024.01.11 |
[Algorithm] 그리디 알고리즘 (Greedy Algorithm) (2) | 2024.01.09 |
[Algorithm] 이분탐색 (Binary Search) - 변형 (0) | 2024.01.04 |
[Algorithm] 최대공약수 (0) | 2023.12.25 |