이분 검색 알고리즘의 귀속과 비귀속 실현
3652 단어 구직의 새로운 여정알고리즘 도론
list1 = [1,2,3,4,5,6,7,8,9,10];
count = len(list1);
def rbs(list0, start, end, a):
mid = (int)((start + end) / 2);
if a == list0[mid]:
return mid
if start == mid and mid == end:
return -1
index1 = rbs(list0, start, mid - 1);
index2 = rbs(list0, mid + 1, end);
if index1 == -1:
return index2
else:
return index1
print("Index of 5 is:");
print(rbs(list1, 0, count - 1, 5));
비귀속 실현
list1 = [1,2,3,4,5,6,7,8,9,10];
count = len(list1);
stack = []
def bs(list0, start, end, a):
while(True):
mid = (int)((start + end) / 2)
if a == list0[mid]:
return mid
if start == mid and mid == end:
if len(stack) == 0:
return -1
else:
start = stack.pop(0)
end = stack.pop(0)
mid = -1
if mid != -1:
stack.append(mid + 1)
stack.append(end)
end = mid
print("Index of 5 is:");
print(bs(list1, 0, count - 1, 5));
주: 단귀환을 비귀환으로 바꾸면 순환으로 해결할 수 있다.쌍귀환을 비귀환으로 바꾸고 순환을 제외하고는 창고나 대열을 빌려야 한다.
저자: 이인신, 2005년 산동사범대학 컴퓨터학과를 졸업하고 세 차례 정신분열증을 앓았다.재활 후 4년 가까이 소프트웨어 엔지니어로 일한 후에 2년 동안 정신분열증 분야의 공익을 했습니다. 지금은 다시 소프트웨어 업계로 돌아가 모든 것을 처음부터 시작합니다!이 블로그가 나의 성장과 진보를 증명하기를 바란다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
이분 검색 알고리즘의 귀속과 비귀속 실현《알고리즘 도론》 제3판 P22, 2.3-5 연습문제 귀속 실현 비귀속 실현 주: 단귀환을 비귀환으로 바꾸면 순환으로 해결할 수 있다.쌍귀환을 비귀환으로 바꾸고 순환을 제외하고는 창고나 대열을 빌려야 한다. 저자: ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.