面接のよくあるアルゴリズムの問題---二分検索(再帰)python
574 ワード
注意numが見つからないと判断した場合、また移動時に1桁多く移動でき、検索速度が速くなります.
class Solution():
def two_part_search(self, list, num, i, j):
while i < j:
m = (i+j)//2
if list[m] == num:
return m
elif list[m] > num:
return self.two_part_search(list, num, i, m-1)
else:
return self.two_part_search(list, num, m+1, j)
return None
def main(self,list,num):
i = 0
j = len(list)-1
m = self.two_part_search(list, num, i, j)
return m