게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
이진탐색 알고리즘에 대해 질문드립니다
게시물ID : programmer_18771짧은주소 복사하기
작성자 : 한나머레이
추천 : 0
조회수 : 853회
댓글수 : 4개
등록시간 : 2016/10/18 14:43:33
옵션
  • 본인삭제금지
알고리즘 공부중인데요,

나무위키에 정리된 이진탐색 내용을 보면 
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에 없다고 가정하고, 가장 가까운 값을 찾아내고 싶을때에도 이 알고리즘을 활용할 수 있을까요?

따로 구글링 해 본 결과로는, 대부분 라이브러리를 사용해서 간단하게 구현하긴 하던데, 별도의 라이브러리 없이 

코드를 짜보고 싶은데 머리가 잘 안돌아가네요 ㅠㅠ

위 코드를 살짝 수정하거나 추가해서 가장 가까운 값 찾기를 하고싶은데 도와주세요ㅠㅠ
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호