제로베이스/알고리즘
Algorithms. 이진 검색 예시
진주네카라
2021. 11. 12. 11:50
728x90
recursive binary search
재귀 함수를 사용한 이진 검색을 해봅니다.
예시
1 리스트를 오름차순으로 정렬하여 '7'를 검색하고 위치(인덱스) 출력하기
nums = [4, 21, 10, 5, 0, 17, 7, 25, 11, 50, 49]
def binarySearch(arr, sta, end, key):
arr.sort()
if end >= sta:
mid = sta + (end - sta) // 2
if key == arr[mid]:
return mid
elif key < arr[mid]:
return binarySearch(arr, sta, mid - 1, key)
else:
return binarySearch(arr, mid + 1, end, key)
else:
return -1
print(nums) # 정렬 전
print(binarySearch(nums, 0, len(nums) - 1, 7))
print(nums) # 정렬 후
[4, 21, 10, 5, 0, 17, 7, 25, 11, 50, 49]
3
[0, 4, 5, 7, 10, 11, 17, 21, 25, 49, 50]
예시
도움
728x90