了解return
中recursion
语句的使用
例如,在二进制搜索中:
def binary_search_recur(array,start,end,item):
middle = int((start+end)/2)
#print (middle)
if (start>end):
return -1
else:
if array[middle]==item:
return middle
elif array[middle]>item:
return binary_search_recur(array,start,middle-1,item)
else:
return binary_search_recur(array,middle+1,end,item)
使用]调用函数>
array = [27,45,76,81,92,101,291] binary_search_recur(array,0,len(array)-1,27)
如果我到处都添加
return
语句,效果很好,但是如果我删除如下所示的0
语句,它不会返回return
(示例中搜索元素的索引)
else: if array[middle]==item: return middle elif array[middle]>item: binary_search_recur(array,start,middle-1,item) #retrun statement removed else: binary_search_recur(array,middle+1,end,item) #retrun statement removed
我的意思是,当我找到该元素时,我想返回它,以便返回索引
middle
,或者如果该元素根本不存在,那么在这种情况下,我返回-1
,否则我只是在调用函数以更新的start
和end
索引递归,就像合并排序
merge_sort(l) merge_sort(r) merge(l,r,array)
所以我不明白为什么删除示例中的
return
语句不会返回op。任何建议都很好。
了解在递归中使用return语句的示例,例如在Binary Search中:def binary_search_recur(array,start,end,item):middle = int((start + end)/ 2)#print(middle)if(start&。 。
循环函数的想法是它使用新的参数或最终值返回对自身的新执行。
让我们考虑以下输入