class SortedList:
theList = []
def add(self, number):
self.theList.append(number)
return self.theList
def remove(self, number):
self.theList.remove(number)
return self.theList
def printList(self):
return print(self.theList)
def binarSearch(self, number):
middle = (len(self.theList)//2)
end = len(self.theList)
if end != 0:
if int(self.theList[middle]) == int(number):
return print("The number is found in the list at place",middle+1)
elif int(self.theList[middle]) < int(number):
self.theList = self.theList[middle:]
return self.binarSearch(number)
elif int(self.theList[middle]) > int(number):
self.theList = self.theList[:middle]
return self.binarSearch(number)
else:
return print("The list is empty")
sorted = SortedList() #create a SortedList object
sorted.add("1")
sorted.add("2")
sorted.add("3")
sorted.add("4")
sorted.add("5")
sorted.add("6")
sorted.printList()
sorted.binarSearch(3)
我不能使用額外的參數我mut只使用self和number。我想讓它遞歸,但如果它很難,你可以正常回答。 此代碼工作良好,直到數字4.當我給4搜索它說,它是在地方2,它繼續說4兩個。我已經嘗試添加其他數字,但它是相同的Python二進制搜索如果可能遞歸
它是一個homewrok這樣我就可以不要那樣做:( –
那麼,其他參數只是在內部使用,您還將如何傳輸狀態?全局變量? – fafl