이 기사의 예에서는 Python 이진 검색 알고리즘의 재귀 구현 방법을 설명합니다. 참고를 위해 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.
여기 이진 검색 코드가 있습니다:
def binarySearch(alist, item): first = 0 last = len(alist)-1 found = False while first<=last and not found: midpoint = (first + last)//2 if alist[midpoint] == item: found = True else: if item < alist[midpoint]: last = midpoint-1 else: first = midpoint+1 return found testlist = [0, 1, 2, 8, 13, 17, 19, 32, 42,] print(binarySearch(testlist, 3)) print(binarySearch(testlist, 13))
I 요즘은 재귀처럼 간단하고 명확해서 재귀적인 방법으로 수정했습니다:
def binSearch(lst, item): mid = len(lst) //2 found = False if lst[mid] == item: found = True return found if mid == 0: #mid等于0就是找到最后一个元素了。 found = False return found else: if item > lst[mid]: #找后半部分 #print(lst[mid:]) return binSearch(lst[mid:], item) else: return binSearch(lst[:mid], item) #找前半部分
테스트를 통과했습니다.
파이썬 이진 검색 알고리즘의 재귀 구현과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!