0
이것은 내가 수행 한 작업입니다. 그러나 목록의 항목 하나만 찾습니다. 항목 36의 색인 두 개를 모두 인쇄하고 싶습니다. 지금까지 내가 수행 한 작업을 도와주십시오. 그런데 내가이 게시 또는 내 질문이 명확하지 않은 경우 내가 미리 사과 당신은 기능이 처리 할 수 있도록, 대신 하나 개의 정수 모든 인덱스의 목록을 반환 할 수이진 검색을 사용하여 목록의 항목을 두 개 이상 찾으십시오.
def main():
mylist=[]
for i in range(20):
mylist.append(i*3)
mylist.append(36)
mylist.sort()
print mylist
binarySearch(mylist,0,len(mylist),36)
def binarySearch(thelist,lower,upper,item):
if upper<lower:
print 'item not in the list'
return
middle=(lower+upper)/2
if thelist[middle]<item:
lower=middle+1
binarySearch(thelist,lower,upper,item)
elif thelist[middle]>item:
upper=middle-1
binarySearch(thelist,lower,upper,item)
else:
print 'the item was found at index ',thelist[middle],middle
return
main()
정렬 된 배열의 인덱스 범위. 색인 'i'에서 항목을 찾을 때까지 색인'i + 1'에서 항목이 아닌 항목을 찾을 때까지 이진 검색을 수행 할 수 있습니다. 다른 (최소) 범위에 대해이 작업을 수행 할 수 있습니다. – irrelephant