알고리즘 공부중인데요,
나무위키에 정리된 이진탐색 내용을 보면
def BinarySearch (arr, val): first, last = 0, arr.len() while first<last: mid = (first + last) // 2 if arr[mid] == val: return mid if arr[mid] > val: last = mid else: first = mid return -1
배열의 가운대 값을 뽑아(arr[mid]), 찾는값(val)과 비교를 해서,
찾는 값이 크면 arr[mid] 뒤쪽을 버리고, 찾는 값이 작으면 arr[mid]의 앞쪽을 버리고
이를 반복해서 원하는 값을 찾는것으로 이해했습니다.
여기서 좀더 응용해서 찾는값 val이 주어진 배열arr에 없다고 가정하고, 가장 가까운 값을 찾아내고 싶을때에도 이 알고리즘을 활용할 수 있을까요?
따로 구글링 해 본 결과로는, 대부분 라이브러리를 사용해서 간단하게 구현하긴 하던데, 별도의 라이브러리 없이
코드를 짜보고 싶은데 머리가 잘 안돌아가네요 ㅠㅠ
위 코드를 살짝 수정하거나 추가해서 가장 가까운 값 찾기를 하고싶은데 도와주세요ㅠㅠ